Sunday, July 20, 2014

TRIGGER



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';


2 comments:

  1. adakah cara yang lebih mudah?ini agak sedikit rumit.

    My blog

    ReplyDelete
  2. Casinos in 2021: Top 7 casinos with a $10 free chip
    This 출장샵 casino gives 충청남도 출장마사지 the user $10 free chip. Here's the 태백 출장안마 complete guide 전라북도 출장샵 to how to get started and 의왕 출장안마 where to play.

    ReplyDelete