Belajar Trigger Basis Data (SQL)

    

    Trigger dapat didefinisikan sebagai himpunan kode yang akan dieksekusi secara otomatis sebagai respon atas suatu kejadian (event).

    Kejadian (event) yang bisa membangkitkan TRIGGER umumnya berupa pernyataan INSERT, DELETE, UPDATE

    Dari sisi perilaku umumnya TRIGGER dibedakan menjadi 2 jenis, yaitu BEFORE dan AFTER

    Cara menulis TRIGGER : 

DELIMITER $$

CREATE TRIGGER nama_trigger 

{BEFORE | AFTER} {INSERT | UPDATE | DELETE}

    ON nama_tabel 

    FOR EACH ROW

BEGIN

    kode_sql

END$$

DELIMITER;

    

    Contoh implementasi penulisan TRIGGER

mysql> DELIMITER $$

mysql> CREATE TRIGGER update_barang
-> BEFORE UPDATE 
-> ON barang
-> FOR EACH ROW 
-> BEGIN 
-> INSERT INTO log_barang(id_brg, nama_brg_lama, nama_brg_baru) VALUES(OLD.id_brg, OLD.nama_brg, NEW.nama_brg);
-> END$$


mysql> DELIMITER;


    Catatan : 

  • Mysql tidak bisa melakukan trigger di saat yang sama, misal kita sudah membuat trigger AFTER INSERT maka kita tidak bisa mendefinisikan kembali trigger AFTER INSERT
  • {BEFORE | AFTER} adalah waktu TRIGGER akan dijalankan, apakah sebelum atau sesudah database dimodifikasi (DML)
  • {INSERT | UPDATE | DELETE} adalah perintah DML yang akan mengaktifkan TRIGGER
  • ON mendefinisikan nama tabel yang akan diberi TRIGGER
  • BEGIN END adalah perintah yang digunakan untuk membungkus perintah TRIGGER 
  • Keyword OLD digunakan untuk mengambil data kolom sebelum diubah, sedangkan keyword NEW digunakan untuk mengambil data kolom sesudah diubah

    Untuk contoh saya tidak menuliskanya, teman-teman bisa melihat link referensi berikut untuk melihat implementasi dari TRIGGER

link referensi pembelajaran

Komentar