Trigger merupakan perintah SQL yang otomatis dijalankan ketika sebelum atau sesudah terjadinya proses insert, update atau delete pada suatu table. Pada satu table hanya diperbolehkan untuk membuat satu trigger. Untuk mengambil data field yang lama ketika field terupdate dapat menggunakan :old.nama_field, query ini juga dapat digunakan untuk mengambil data yang dihapus. Sedangkan untuk mengambil data baru menggunakan :new.nama_field.
CONTOH SOAL
1. Buatlah trigger dengan syarat update memicu insert
2. Buatlah trigger dengan syarat delete memicu update
PEMBAHASAN
tabel history_mhs setelah record pada table mahasiswa dengan npm=1634010001 diupdate |
tabel status_mk |
tabel status_mk setelah data dengan kd_mk=IF01 pada table matkul dihapus |
untuk membuat trigger update memicu insert dan delete memicu update. Untuk trigger update memicu insert menggunakan perintah after update on mahasiswa for each row, berarti trigger ini akan dijalankan ketika setelah ada update pada table mahasiswa, sementara itu pada bagian begin, insert into history_mhs values(:new.npm, :new.nama, :new.par, :new.jur, :old.nama, :old.par, :old.jur, CURRENT_DATE); merupakan perintah yang akan dijalankan trigger yaitu menginsert data ke table history_mhs dengan values yang ditentukan, untuk :new.nama merupakan data baru setelah diupdate sedangkan :old.nama merupakan data lama sebelum diupdate sementara CURRENT_DATE merupakan perintah yang digunakan untuk mengambil tanggal secara otomatis.
Untuk trigger delete memicu insert menggunakan after delete on matkul for each row, berarti trigger akan dijalankan setelah terjadi delete data pada table matkul. Sementara pada bagian begin, update status_mk set status='Tidak Tersedia' where kd_mk=:old.kd_mk; berarti trigger akan menjalankan perintah update pada table status_mk dengan kd_mk yang sesuai dengan data kd_mk pada table matkul sebelum dihapus.
QUERY
Modul Basis Data Trigger : Tabel Mahasiswa
Reviewed by Syafriansyah Muhammad
on
7/12/2018
Rating:
Tidak ada komentar: