Membuat Trigger di MySQL

trigger adalah sebuah objek yang didefinisikan untuk mengaktifkan ketika sebuah tabel dimodifikasi. trigger yang tersedia untuk statement INSERT, UPDATE, dan DELETE. Contohnya, Kita dapat memeriksa nilai sebelum mereka dimasukkan ke dalam tabel, atau membuat log data atas apa yang kita lakukan pada sebuah tabel seperti insert,update,delete. trigger berguna untuk mengotomatisasi tindakan tindakan diatas sehingga kita tidak perlu ingat untuk melakukannya sendiri setiap kali kita memodifikasi tabel.

Sebelumnya, saya tidak pernah menggunakan trigger, tetapi karena pada aplikasi yang sedang saya kembangkan ada kasus yaitu saya harus menghapus record pada suatu tabel parent ketika  primary key tabel parent tersebut tidak lagi ada di tabel child.

Berikut adalah contoh trigger yang saya buat :

 

Create tabel parent (
            Idtabelparent int(11) auto_increment,
            Nama varchar(30),
            Primary key(`idtabelparent`)
);

Create tabel child (
            Idtabelchild int(11) auto_increment,
            Idtabelparent int(11),
            Nama varchar(30),
            Primary key(`idtabelparent`)
);

mysql>delimiter //
    ->create trigger del_rec_parent after delete on tabel_child
    -> for each row
    -> begin
    -> set @jml:=(select count(*) from tabel_child where idtabelparent like OLD.idtabelparent);
    -> if @jml < 1 then
    -> delete from family_folder where idtabelparent like OLD. idtabelparent;
    -> end if;
    -> end //

Dengan trigger diatas, ketika saya menghapus record tabel child terakhir yang berhubungan dengan suatu record parent, maka otomatis record parent itu pun terhapus.