Trigger mendefinisikan sekumpulan aksi yang akan dijalankan untuk merespon sebuah operasi, seperti insert, update, delete pada sebuah tabel. Trigger dapat dijalankan sebelum atau sesudah operasi dijalankan.
Berikut keuntungan menggunakan trigger sebelum melakukan operasi :
1. untuk memeriksa / mengubah nilai sebelum di update jika anda melakukan transformasi data yang sering terjadi perbedaan format.
2. untuk melakukan operasi non-database di user defined function.
sementara keuntungan menggunakan trigger sesudah melakukan operasi :
1. untuk mengubah data di tabel lainnya
2. untuk memriksa integritas data.
3. untuk melakukan operasi non-database di user defined function. biasanya digunakan untuk mengeluarkan alert / informasi.
Adapun beberapa manfaat penggunaan trigger :
1. pengembangan aplikasi yang lebih cepat
2. mudah dalam maintenance
3.aturan bisnis secara global.
Untuk membuat trigger, tool yang dibutuhkan adalah DB2 Control Center. Berikut langkah-langkah membuat trigger di DB2.
1. Buka database
2. Klik kanan Trigger-> Create
3. Kemudian isi field- field yang tersedia.
1. Buka database
2. Klik kanan Trigger-> Create
3. Kemudian isi field- field yang tersedia.
Misalnya kita ingin membuat trigger jika kolom salary di table staff di ganti. Bearti kita isi field kolom dengan Staff, time to trigger action pilih after, kemudian pilih update pada operasi.
4. Kemudian di tab triggered action, pilih statement dan isi textarea dengan
WHEN ( 1=1 )
BEGIN ATOMIC
— statement yang ingin dijalankan oleh trigger
INSERT INTO saleslog (userid, daytime) VALUES (CURRENT USER,
CURRENT TIMESTAMP);
—
END
5. OK
WHEN ( 1=1 )
BEGIN ATOMIC
— statement yang ingin dijalankan oleh trigger
INSERT INTO saleslog (userid, daytime) VALUES (CURRENT USER,
CURRENT TIMESTAMP);
—
END
5. OK
Jika menggunakan coding maka code yang artinya sama dengan operasi diatas adalah sebagai berikut
CREATE TRIGGER DENY.TRIGGER1 AFTER UPDATE OF SALARY ON DENY.STAFF FOR EACH ROW MODE DB2SQL
WHEN ( 1=1 )
BEGIN ATOMIC
INSERT INTO log (id,time) VALUES (CURRENT USER,
CURRENT TIMESTAMP);
END
CREATE TRIGGER DENY.TRIGGER1 AFTER UPDATE OF SALARY ON DENY.STAFF FOR EACH ROW MODE DB2SQL
WHEN ( 1=1 )
BEGIN ATOMIC
INSERT INTO log (id,time) VALUES (CURRENT USER,
CURRENT TIMESTAMP);
END
Semoga bermanfaat
Tidak ada komentar:
Posting Komentar