DASAR
TEORI
Trigger
Trigger
adalah sebuah blok PL/SQL yang disimpan dalam database yang secara otomatis
akan
teraktivasi ketika terjadi suatu operasi pada sebuah tabel, view, schema, atau
database.
Trigger
terdapat 2 jenis :
1.
Application Trigger
Yang
dimana tigger tersebut akan teraktivasi ketika terjadi suatu event pada sebuah
aplikasi
tertentu
2.
Database Trigger
Yang
dimana trigger tersebut akan teraktivasi ketika terjadi suatu data
event(operasi
DML(INSERT,
UPDATE, DELETE)) atau system event (logon or shutdowm) pada
sebuah
schema atau database dan untuk selanjutnya kita akan membahas tentang
Tipe
trigger ada 2 macam, yaitu :
Statement : trigger dijalankan sekali saja pada saat terjadi sebuah event.
Statement trigger juga dijalankan sekali, meskipun tidak ada satupun baris yang
dipengaruhi oleh event yang terjadi.
Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya
sebuah event. Row trigger tidak dijalankan jika event dari trigger tidak
berpengaruh pada satu baris pun.
Trigger body mendefinisikan tindakan yang perlu dikerjakan pada saat terjadinya
event yang mengakibatkan sebuah trigger menjadi aktif.
CONTOH SINTAK
TRIGGER :
Menggunakan SQL 2000:
# Trigger Delete dgn di tabel MELAKUKAN dan TRANSAKSI
create trigger hapus ON MELAKUKAN
FOR DELETE
as delete TRANSAKSI
from TRANSAKSI, deleted
where TRANSAKSI.ID_TRANSAKSI = deleted.ID_TRANSAKSI
exec DeleteMELAKUKAN 'tr6'
# Trigger Insert pada table Tamu
Create Trigger INSERT_TAMU on TAMU
For insert
As
Insert into TAMU
Select ID_TAMU,NAMA,ALAMAT,NO_TELP from inserted
# Trigger Update pada table Tamu
Create Trigger UPDATE_TAMU on TAMU
For Update
As
Update TAMU
Set NAMA=(Select NAMA from Inserted),
ALAMAT=(Select ALAMAT from Inserted),
NO_TELP=(Select NO_TELP from Inserted)
Where TAMU.ID_TAMU in (select ID_TAMU from Inserted)
TRIGGER :
Menggunakan ORACLE:
#TRIGGER DETETE TABLE TAMU_MELAKUKAN
create or replace
trigger hapus_tamu_melakuka n
after delete on MELAKUKAN
for each row
begin
delete from MELAKUKAN
where id_tamu=:old.id_tamu;
end;
DELETE FROM TAMU WHERE ID_TAMU = 'it6';
SELECT * FROM TAMU;
create or replace
trigger hapus_tamu
after delete on TAMU
for each row
begin
delete from TAMU
where id_tamu=:old.id_tamu;
end;
DELETE FROM TAMU WHERE ID_TAMU = 'it6';
adakah cara yang lebih mudah?ini agak sedikit rumit.
ReplyDeleteMy blog
Casinos in 2021: Top 7 casinos with a $10 free chip
ReplyDeleteThis 출장샵 casino gives 충청남도 출장마사지 the user $10 free chip. Here's the 태백 출장안마 complete guide 전라북도 출장샵 to how to get started and 의왕 출장안마 where to play.