Trigger adalah blok program SQL yang dijalankan secara otomatis saat terjadi perubahan data pada tabel tertentu akibat insert, update, atau delete record. Trigger digunakan untuk memelihara integritas data dan mencegah pelanggaran aturan-aturan yang berlaku pada basis data. Trigger dapat membuat riwayat perubahan secara otomatis dan menjaga keamanan sistem database.
3. Pengertian
Trigger akan beraksi bila terjadi suatu
event,yaitu:
Insert (penambahan record baru)
Update (peremajaan record)
Delete (hapus record)
4. Panduan
Gunakan sebagai jaminan, saat terjadi
sesuatu di basis data, ada aksi yang
akan dijalankan.
Batasi ukuran Trigger.
5. Panduan
Gunakan hanya untuk operasi-operasi terpusat
dan bersifat global.
Jangan membuat trigger yang bersifat
rekursif.
6. Manfaat
Meluruskan aturan-aturan yang harus berlaku.
Menjaga nilai sebelum dimasukan ke dalam
database
Keamanan sistem
Membuat Historical Record (riwayat
perubahan)
8. Keterangan sintaks
trigger_name : nama trigger.
trigger_time : kapan kita mengeksekusi trigger, apakah sebelum atau
sesudah perubahan pada row data table. Jadi pilihannya
adalah AFTER atau BEFORE.
trigger_event : merupakan event atau peristiwa yang menyebabkan
trigger dilakukan. Pilihan event tersebut adalah INSERT, UPDATE, DELETE.
tbl_name : nama table.
trigger_body : statement-statement perintah SQL yang akan dilakukan. Jika
perintahnya lebih dari satu maka gunakan dalam blok statement BEGIN ...
END.
Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut
dijalankan hanya oleh user tertentu (dalam format penulisan user@host).
Jika tidak dispesifikasikan, maka user yang melakukan perubahan
(CURRENT_USER) adalah pilihan default.
10. Referensi "OLD" dan "NEW"
Karena trigger digunakan pada saat terjadi
perubahan row data, maka kita perlu referensi ke
row sebelum dan sesudah perubahan.
Sesuai namanya, OLD digunakan untuk referensi
sebelum perubahan
NEW untuk referensi sesudah perubahan.
11. Keyword pada trigger
insert : new (baris data yang baru)
update : new (baris data yang baru), old (baris
data yang lama)
delete : old (baris data yang lama)