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