Trigger merupakan nama dari object database yang dikaitkan dengan sebuah tabel dan diaktifkan ketika terjadi sebuah even terhadap tabel. Database event tersebut adalah proses insert, update, dan delete.
Trigger akan secara otomatis dijalankan ketika suatu event/aksi berlangsung pada database.
Trigger tidak dapat langsung dieksekusi seperti Store procedure, tidak memiliki parameter dan return code.
Sintaks untuk trigger:
CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt
trigger_time : BEFORE atau AFTER
trigger_event : INSERT, UPDATE, DELETE
Contoh trigger untuk proses insert
Pertama create table berikut
CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT);
Kemudian create trigger
DELIMITER // CREATE TRIGGER testref BEFORE INSERT ON test1 FOR EACH ROW BEGIN INSERT INTO test2 SET a2 = NEW.a1; END; //DELIMITER;
Coba lakukan proses insert
INSERT INTO test1 values (1),(2),(3); SELECT * FROM test1; SELECT * FROM test2;
contoh trigger untuk proses update
DELIMITER //
create trigger update_coba AFTER UPDATE ON test1
FOR EACH ROW BEGIN
UPDATE test2 set a2=new.a1 where a2=3;
END;
//DELIMITER;UPDATE test1 set a1=4 where a1=3;
SELECT * FROM test1;
SELECT * FROM test2;
contoh trigger untuk proses delete
DELIMITER // CREATE TRIGGER delete_coba AFTER DELETE ON test1 FOR EACH ROW BEGIN DELETE FROM test2 where a2=1 ; END; //DELIMITER; DELETE FROM test1 where a1=2; SELECT * FROM test1; SELECT * FROM test2;
