Oleh: denysutani | Januari 14, 2009

Membuat Trigger BeforeUpdate

Artikel terakhir mengenai trigger dibuat untuk after insert data. Membuat triggernya sangat mudah karena tidak memerlukan validasi apapun. Berikut adalah contoh bagaimana membuat sebuah trigger before update, yang mengharuskan adanya validasi tertentu.

Misalnya ada sebuah tabel bernama course dengan field sebagai berikut
– courseName varchar (20)
– courseType char (1)
Buatlah sebuah trigger before update yang memvalidate courseType hanya bernilai ‘U’ dan ‘P’

Berikut adalah syntax createnya
CONNECT TO SAMPLE;
CREATE TABLE PRK.COURSE (COURSENAME VARCHAR (50) NOT NULL, COURSETYPE CHARACTER (1) NOT NULL );
CONNECT RESET;

Berikut adalah syntax TRIGGERnya
CREATE TRIGGER DENY.VALIDATECOURSETYPE NO CASCADE BEFORE UPDATE OF COURSETYPE ON DENY.COURSE REFERENCING OLD AS old NEW AS new FOR EACH ROW MODE DB2SQL
WHEN (new.courseType != ‘U’ or new.courseType != ‘P’ )
BEGIN ATOMIC
SIGNAL SQLSTATE ‘70001’ (‘Invalid’);
END

Kemudian kita insert ke table
insert into deny.course values (‘name1′,’U’)
insert into deny.course values (‘name2′,’P’)
insert into deny.course values (‘name3′,’P’)

Kemudian kita update record tertentu
update deny.course set courseType = ‘A’ where courseType = ‘P’

Maka akan menghasilkan error sebagai berikut
update deny.course set courseType = ‘A’ where courseType = ‘P’
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0438N Application raised error with diagnostic text: “Invalid”.
SQLSTATE=70001

Berikut adalah screenshot hasilnya
Free Image Hosting at www.ImageShack.us

Semoga bermanfaat.

Best regards,

Deny Sutani


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

%d blogger menyukai ini: