Share

Trigger dalam database adalah kode prosedural yang secara otomatis dijalankan untuk menanggapi perubahan tertentu pada table tertentu atau tampilan dalam database. Trigger dapat didefinisikan untuk menjalankan penrintah sebelum atau setelah eksekusi DML (Data Manipulation Language) seperti INSERT, UPDATE, dan DELETE. Trigger banyak digunakan untuk menjaga integritas informasi pada database.

Trigger didukung oleh banyak RDBMS, seperti : MySQL, PostgreSQL, SQLite, Firebird, DB2, Microsoft SQL Server dan Oracle. Implementasinya bervariasi sehingga Anda harus memeriksa dokumentasi database yang sesuai sebelum coding.

Kapan kita menggunakan Trigger?

Idealnya, Trigger harus dipertimbangkan ketika kode ini digunakan untuk mengotomatisasi perubahan yang spesifik untuk database atau pengelolaan data. Log audit adalah contoh penerapan dari Trigger. Misalnya sebuah sistem CMS WordPress dengan table ‘blog’ yang berisi judul dan isi artikel. Kemudian sebuah table ‘audit’ yang bisa merekam tanggal dan waktu sebuah artikel ketika ditambahkan, diedit atau dihapus. Sistem web Anda mungkin tidak pernah menyajikan informasi yang atau bahkan tahu setiap perubahan database itu dicatat.

Hal-hal yang harus dihindari ketika menggunakan Trigger

  1. Trigger jangan digunakan sebagai tempat dari foreign key constraints.
  2. Trigger bukan pengganti dari transactions.
  3. Waspada tentang pemisahan logika bisnis Anda antara database dan sistem back-end Anda (yang ditulis dalam PHP, C #, Java dll). Pemeliharaan sistem akan menjadi lebih sulit jika kode Anda dipisahkan.
  4. Hindari duplikasi source code dan kode Trigger, sehingga seharusnya tidak perlu mengulang perintah yang sama dalam database.
  5. Trigger akan memicu overhead kinerja. Trigger akan dieksekusi lebih cepat dari serangkaian perintah SQL lewat kode back-end.

Karakteristik Trigger:

  1. Sebuah nama yang unik. Misalnya blog_before_insert atau blog_after_update.
  2. Sebuah Trigger hanya dapat memonitor satu table.
  3. Ketika Trigger dijalankan, ini terjadi ‘before’ atau ‘after’ INSERT, UPDATE atau DELETE. Trigger ‘before’ harus digunakan jika Anda perlu untuk memodifikasi data yang masuk. Sebuah Trigger ‘after’ harus digunakan jika Anda ingin referensi record baru, berubah sebagai foreign key untuk catatan di table lain.
  4. Blok kode Trigger: satu set perintah SQL untuk menjalankan. Perhatikan bahwa Anda dapat merujuk ke suatu kolom dalam tabel menggunakan OLD.col_name (nilai sebelumnya) atau NEW.col_name (nilai baru). Nilai untuk NEW.col_name dapat diubah dalam Trigger SEBELUM INSERT dan UPDATE.

Penulisan Trigger seperti contoh di bawah:

Untuk artikel selanjutnya tutorial membuat Trigger dengan menggunakan database MySQL.