prosedur di jalankan oleh pengguna, applikasi, atau trigger itu sendiri. Sedangkan trigger di jalankan oleh mesin Oracle apabila event yang terdapat dalam trigger tersebut terjadi dan tidak terbatas oleh user yang menggunakan ataupun applikasi yang sedang digunakan.
Fungsi trigger adalah untuk menjaga data agar tetap stabil jika ada perubahan yaitu Insert,Update maupun Delete dan mempermudah perubahan terhadap data ketika terjadi suatu event tertentu.
Beberapa event yang digunakan sebagai pembatasan aturan pemicu adalah :
- Perintah DML
- Perintah DDL
- Beberapa system events, seperti startup, shutdown, dan pesan error lainnya.
- Pre – insert
- Post – insert
- Pre – update
- Post – update
- Pre – delete
- Post – delete
Beberapa kegunaan trigger :
- Digunakan untuk menyediakan audit trails pada tiap tabel
- Digunakan untuk memberikan nilai pada kolom – kolom tertentu
- Mencegah transaksi yang tidak valid
- Untuk mendukung beberapa proses bisnis yang kompleks.
- Log untuk tiap – tiap event yang ada
CREATE TRIGGER total_salary AFTER DELETE OR INSERT OR UPDATE OF department_id, salary ON employees FOR EACH ROW BEGIN /* assume that department_id and salary are non-null fields */ IF DELETING OR (UPDATING AND :old.department_id != :new.department_id) THEN UPDATE departments SET total_salary = total_salary - :old.salary WHERE department_id = :old.department_id; END IF; IF INSERTING OR (UPDATING AND :old.department_id != :new.department_id) THEN UPDATE departments SET total_salary = total_salary + :new.salary WHERE department_id = :new.department_id; END IF; IF (UPDATING AND :old.department_id = :new.department_id AND :old.salary != :new.salary ) THEN UPDATE departments SET total_salary = total_salary - :old.salary + :new.salary WHERE department_id = :new.department_id; END IF; END;
EmoticonEmoticon