Mysql Trigger Dengan Phpmyadmin
Mysql Trigger Dengan Phpmyadmin
1 function insert(){
2 //insert ke table A
3 insert into table a (field_1,field_2) values ('value 1','value 2');
4 //insert juga ke table B
5 insert into table B (field_1,field_2) values ('value 1','value 2');
6}
Salah ? tidak juga karena menurut pepatah kan banyak jalan menuju roma,dan banyak
jalan memecahkan masalah, betul ? Tapi ada kata pepatah lain kalau bisa diselesaikan
oleh database kenapa harus sampai ngoding di script ?.
Untuk versi mysql 5 keatas sudah ada namanya trigger, sesuai namanya pemicu maka
dia adalah sebuah event otomatis tergantung pemicunya bisa setelahnya (after) atau
sebelumnya (before).
Udahlah langsung aja supaya gak kebanyakan cerita. Sebelumnya persiapkan 2 tabel,
tabel mahasiswa (tetep mahasiswa andalan setiap demo) dengan struktur seperti
berikut
1. id (int 11) primary key auto increment
2. nama (varchar 25)
3. kelas (varchar 25)
Dan tabel mahasiswa_history yang hampir mirip strukturnya seperti berikut
Setelah memilih menu Trigger, ada link add trigger lalu kita buat trigger yang pertama
setelah insert alias after insert. Pilih add trigger tersebut maka akan muncul dialog box
dan isikan sesuai gambar.
penjelasan :
1. trigger name : ini diisi bebas sesuaikan dengan nama yang di inginkan
2. Table : pilih trigger akan dijalankan saat ada event di tabel mana, karena ini
tabel mahasiswa maka plih tabelnya tabel mahasiswa
3. Time : kapan akan dilakukan AFTER atau BEFORE karena setelah dalam
kasus ini pilih lah AFTER.
4. Event : ini pemicu utamanya, script akan dijalankan setelah apa, karena setelah
insert maka pilihlah eventnya INSERT.
5. Definition : ini script yang dijalankan saat trigger dijalankan
Untuk field Definition bagian pertama isikan script berikut
1
2
3
4
berikut
Lanjut yang ketiga, karena ini eventya berbeda maka pastikan pilih time nya before
dan event nya delete.
dengan isi dari field definiton seperti
berikut
Catatan Tambahan :
1.Jika diperhatikan terdapat old.field dan new.field, OLD itu akan mengambil
referensi data sebelum ada perubahan (insert,update,delete) sedangkan NEW
mengambil refensi setelah ada perubahan (insert,update,delete).
2.Script concat(Sudah ditambahkan pada , current_date()) , bukanlah hal wajib saya
hanya ingin input data dengan embel embel tanggal dinamis. script concat bisa diisi
apa saja mau hanya current_date() atau puntext biasa tergantung field apa yang akan
dipakai untuk menampunya kebetulan saja ini field note nya berupa text