DB2 - Pemicu
Bab ini menjelaskan pemicu, jenisnya, pembuatan, dan penghapusan pemicu.
pengantar
Pemicu adalah sekumpulan tindakan, yang dilakukan untuk merespons operasi INSERT, UPDATE atau DELETE pada tabel tertentu dalam database. Pemicu disimpan dalam database sekaligus. Mereka menangani tata kelola data. Mereka dapat diakses dan dibagikan di antara banyak aplikasi. Keuntungan menggunakan pemicu adalah, jika ada perubahan yang perlu dilakukan dalam aplikasi, hal itu dilakukan di pemicu; alih-alih mengubah setiap aplikasi yang mengakses pemicu. Pemicu mudah dikelola dan mendorong pengembangan aplikasi yang lebih cepat. Pemicu didefinisikan menggunakan pernyataan SQL "CREATE TRIGGER".
Jenis pemicu
Ada dua jenis pemicu:
1. SEBELUM pemicu
Mereka dijalankan sebelum operasi SQL apa pun.
2. SETELAH pemicu
Mereka dijalankan setelah operasi SQL apa pun.
Membuat pemicu SEBELUM
Mari kita lihat cara membuat urutan pemicu:
Syntax:
db2 create sequence <seq_name>
Example: Membuat urutan pemicu untuk table shopper.sales1
db2 create sequence sales1_seq as int start with 1 increment by 1
Syntax:
db2 create trigger <trigger_name> no cascade before insert on
<table_name> referencing new as <table_object> for each row set
<table_object>.<col_name>=nextval for <sequence_name>
Example: Membuat pemicu untuk tabel shopper.sales1 untuk memasukkan nomor kunci utama secara otomatis
db2 create trigger sales1_trigger no cascade before insert on
shopper.sales1 referencing new as obj for each row set
obj.id=nextval for sales1_seq
Sekarang coba masukkan nilai apa pun:
db2 insert into shopper.sales1(itemname, qty, price)
values('bicks', 100, 24.00)
Mengambil nilai dari tabel
Mari kita lihat cara mengambil nilai dari tabel:
Syntax:
db2 select * from <tablename>
Example:
db2 select * from shopper.sales1
Output:
ID ITEMNAME QTY
------- ------------ ----------
3 bicks 100
2 bread 100
2 record(s) selected.
Membuat pemicu AFTER
Mari kita lihat cara membuat pemicu setelah:
Syntax:
db2 create trigger <trigger_name> no cascade before insert on
<table_name> referencing new as <table_object> for each row set
<table_object>.<col_name>=nextval for <sequence_name>
Example: [Untuk memasukkan dan mengambil nilai]
db2 create trigger sales1_tri_after after insert on shopper.sales1
for each row mode db2sql begin atomic update shopper.sales1
set price=qty*price; end
Output:
//inseting values in shopper.sales1
db2 insert into shopper.sales1(itemname,qty,price)
values('chiken',100,124.00)
//output
ID ITEMNAME QTY PRICE
----- -------------- ----------- -----------
3 bicks 100 2400.00
4 chiken 100 12400.00
2 bread 100 2400.00
3 record(s) selected.
Menjatuhkan pemicu
Berikut adalah bagaimana pemicu database dijatuhkan:
Syntax:
db2 drop trigger <trigger_name>
Example:
db2 drop trigger slaes1_trigger