Trigger adalah sebuah objek database yang berisi sekumpulan perintah SQL yang dieksekusi secara otomatis ketika terjadi suatu peristiwa atau event tertentu di dalam database. Peristiwa ini biasanya terkait dengan operasi DML (Data Manipulation Language) seperti INSERT, UPDATE, atau DELETE. Trigger digunakan untuk melakukan tindakan otomatis yang memastikan aturan bisnis atau konsistensi data tetap terjaga.
Fungsi dari Trigger
Trigger memiliki beberapa fungsi utama, di antaranya:
Menerapkan Aturan Bisnis
Trigger dapat digunakan untuk memastikan bahwa data yang dimasukkan atau diperbarui sesuai dengan aturan atau kebijakan bisnis tertentu. Misalnya, trigger dapat digunakan untuk memastikan bahwa saldo akun tidak pernah menjadi negatif.Memvalidasi Data
Trigger dapat memvalidasi data yang dimasukkan, menghindari adanya data yang tidak sesuai format atau tidak valid. Contoh: trigger dapat memeriksa apakah nilai kolom tertentu berada dalam rentang yang valid atau tidak.Menghasilkan Nilai Unik untuk Baris yang Baru Dimasukkan
Trigger dapat digunakan untuk menghasilkan nilai otomatis untuk kolom yang memerlukan data unik, seperti nomor identifikasi (ID) atau kode unik lainnya, saat baris baru dimasukkan ke dalam tabel.Menyimpan Catatan untuk Tujuan Audit
Trigger sering digunakan untuk mencatat perubahan data di tabel tertentu, sehingga memungkinkan audit trail (jejak audit). Misalnya, setiap kali data dalam tabel diperbarui, trigger dapat secara otomatis membuat catatan di tabel log yang mencatat siapa yang mengubah data dan kapan.Menjaga Konsistensi Data
Trigger dapat digunakan untuk menjaga konsistensi antar tabel yang berhubungan. Misalnya, ketika ada pembaruan atau penghapusan data di satu tabel, trigger bisa mengupdate atau menghapus data yang berkaitan di tabel lain.
Jenis-Jenis Trigger
Trigger AFTER
Trigger jenis ini dieksekusi setelah aksi (sepertiINSERT,UPDATE, atauDELETE) selesai dilakukan. TriggerAFTERcocok digunakan untuk aksi yang perlu dilakukan setelah data benar-benar dimasukkan atau dimodifikasi.
Contoh: Mengirim email notifikasi setelah data pelanggan berhasil ditambahkan.Trigger BEFORE
Trigger jenis ini dieksekusi sebelum aksi dilakukan. TriggerBEFOREberguna untuk memvalidasi data atau melakukan perubahan pada data sebelum disimpan ke dalam tabel.
Contoh: Memastikan nilai kolom tertentu tidak null atau memastikan data berada dalam format yang benar sebelum memasukkan data ke dalam tabel.Statement Trigger
Jenis trigger ini dieksekusi sekali untuk setiap pernyataan DML (misalnyaINSERT,UPDATE, atauDELETE) yang terjadi, tanpa memperhatikan jumlah baris yang dipengaruhi oleh pernyataan tersebut.
Contoh: Mencatat jumlah total transaksi yang berhasil setelah melakukan operasiINSERTpada tabel transaksi.Row Trigger
Trigger jenis ini dieksekusi untuk setiap baris data yang dipengaruhi oleh pernyataan DML. Jika pernyataan DML mempengaruhi banyak baris, maka trigger ini akan dijalankan sebanyak jumlah baris yang dipengaruhi.
Contoh: Menambahkan informasi audit untuk setiap baris data yang diubah dalam tabel.
Manfaat Menggunakan Trigger
Automatisasi
Trigger dapat mengotomatisasi sejumlah proses yang biasa dilakukan oleh aplikasi, mengurangi kebutuhan untuk menulis kode tambahan dalam aplikasi. Hal ini membantu menyederhanakan kode aplikasi dan mengurangi kemungkinan terjadinya kesalahan.Konsistensi Data
Trigger membantu memastikan bahwa data dalam database selalu konsisten dan valid. Misalnya, jika ada batasan atau aturan bisnis yang harus dipatuhi setiap kali data dimasukkan atau diperbarui, trigger akan memastikan aturan tersebut dijalankan tanpa bergantung pada pengembang aplikasi untuk memprogramkannya.Pengelolaan yang Lebih Mudah
Dengan trigger, perubahan aturan bisnis atau pengolahan data dapat dilakukan langsung pada level database, sehingga tidak perlu melakukan perubahan besar pada kode aplikasi. Ini memudahkan pengelolaan dan pemeliharaan sistem, terutama ketika ada perubahan kebijakan atau aturan yang harus diterapkan secara konsisten di seluruh aplikasi.
data tbl.keluar
data hasil trigger
