• Tidak ada hasil yang ditemukan

Trigger terjadi ketika ada eksekusi INSERT, DELETE, UPDATE pada tabel yang dimaksud.

N/A
N/A
Protected

Academic year: 2023

Membagikan "Trigger terjadi ketika ada eksekusi INSERT, DELETE, UPDATE pada tabel yang dimaksud."

Copied!
24
0
0

Teks penuh

(1)

TRIGGER

(2)

Trigger adalah blok PL/SQL yang disimpan dalam tabel database dan akan aktif jika sebuah event (DML) terjadi pada tabel tesebut.

Trigger terjadi ketika ada eksekusi INSERT, DELETE, UPDATE pada tabel yang dimaksud.

Waktu eksekusi trigger yang mungkin

terjadi terdiri dari 2 yaitu BEFORE dan

AFTER

(3)

BEFORE INSERT : Diaktivasi sekali sebelum statement INSERT

AFTER INSERT : Diaktivasi sekali setelah statement INSERT

BEFORE UPDATE : Diaktivasi sekali sebelum statement UPDATE

AFTER UPDATE : Diaktivasi sekali setelah statement UPDATE

BEFORE DELETE : Diaktivasi sekali sebelum statement DELETE

AFTER DELETE : Diaktivasi sekali setelah statement DELETE

EVENT TRIGGER

(4)

Syntax Trigger

(5)

Timing menandakan waktu kapan trigger akan

terpicu, dimana bagian ini dapat berupa BEFORE atau AFTER.

Event diisi dengan kejadian DML apa yang akan memicu trigger, bagian ini diisi dengan SELECT, UPDATE, DELETE.

Nama objek digunakan untuk menentukan objek database yang akan mempunyai trigger.

Untuk trigger baris, kita dapat menentukan :

- sebuah kalusa REFERENCING digunkan untuk

memberikan nama lain terhadap data baru atau lama ( secara default adalah OLD dan NEW).

- FOR EACH ROW menentukan bahwa trigger merupakan trigger baris

ISI_trigger adalah aksi yang akan dilakukan oleh

trigger. Biasanya dapat berbentuk sebuah anonymous PL/SQL atau pemanggilan procedure dengan CALL.

(6)

BUAT TABEL SEDERHANA CREATE TABLE STOCK(

KODE_BARANG CHAR(4) NOT NULL PRIMARY KEY,

NAMA_BARANG VARCHAR2(25), JUMLAH_STOCK NUMBER(10)

);

CONTOH PENGGUNAAN TRIGGER

(7)

ISI DATANYA

INSERT INTO STOCK VALUES (‘0001’,’TELEVISI’,25);

INSERT INTO STOCK VALUES (‘0002’,’RADIO’,25);

INSERT INTO STOCK VALUES (‘0003’,’KULKAS’,25);

INSERT INTO STOCK VALUES (‘0004’,’LAPTOP’,25);

INSERT INTO STOCK VALUES (‘0005’,’DVD PLAYER’,25);

CONTOH PENGGUNAAN TRIGGER

(8)

CREATE OR REPLACE TRIGGER SISIP_STOCK BEFORE INSERT ON STOCK

FOR EACH ROW BEGIN

DBMS_OUTPUT.PUT_LINE(‘DATA TELAH DISISIPKAN’);

END;

/

TRIGGER BEFORE INSERT

(9)

INSERT INTO STOCK VALUES ('0006','COMPUTER',20);

TRIGGER BEFORE INSERT

(10)

CREATE OR REPLACE TRIGGER UBAH_STOCK AFTER UPDATE ON STOCK

FOR EACH ROW BEGIN

DBMS_OUTPUT.PUT_LINE(‘DATA TELAH BERHASIL DI RUBAH');

END;

/

TRIGGER AFTER UPDATE

(11)

UPDATE STOCK SET JUMLAH_STOCK = 10 WHERE KODE_BARANG='0006';

TRIGGER AFTER UPDATE

(12)

CREATE OR REPLACE TRIGGER HAPUS_STOCK AFTER DELETE ON STOCK

FOR EACH ROW BEGIN

DBMS_OUTPUT.PUT_LINE(‘DATA SUDAH BERHASIL DIHAPUS');

END;

/

TRIGGER AFTER DELETE

(13)

DELETE FROM STOCK WHERE KODE_BARANG='0006';

TRIGGER AFTER DELETE

(14)

Dalam trigger data lama dan baru dapat diakses, dimana data lama direference dengan recod OLD dan data baru dapat diference dengan record NEW.

Untuk mengacu ke sebuah field dapat ditulis dengan NEW.namafield atau OLD.namafield.

Mengakses Data Lama dan

Baru

(15)

CREATE TABLE PEMBELIAN(

KD_PEMBELIAN CHAR(6) NOT NULL, KODE_BARANG CHAR(4),

JUMLAH_BELI NUMBER(5),

CONSTRAINT PK_PEMBELIAN PRIMARY KEY (KD_PEMBELIAN),CONSTRAINT

FK_BELI FOREIGN KEY (KODE_BARANG)

REFERENCES

STOCK(KODE_BARANG));

(16)

CREATE TABLE PENJUALAN (

KD_PENJUALAN CHAR(6) NOT NULL, KODE_BARANG CHAR(4),

JUMLAH_JUAL NUMBER(5),

CONSTRAINT PK_PENJUALAN PRIMARY KEY (KD_PENJUALAN),CONSTRAINT

FK_JUAL FOREIGN KEY (KODE_BARANG)

REFERENCES STOCK(KODE_BARANG));

(17)

CREATE OR REPLACE TRIGGER SISIP_PEMBELIAN AFTER INSERT ON PEMBELIAN

FOR EACH ROW DECLARE

X NUMBER;

A VARCHAR2(4);

BEGIN

X:=:NEW.JUMLAH_BELI;

A:=:NEW.KODE_BARANG;

UPDATE STOCK SET JUMLAH_STOCK = JUMLAH_STOCK + X WHERE KODE_BARANG=A;

END;

/

(18)

SELECT * FROM STOCK;

SELECT * FROM PEMBELIAN;

INSERT INTO PEMBELIAN VALUES(‘FB- 002’,’0002’,100);

SELECT * FROM STOCK;

(19)

CREATE OR REPLACE TRIGGER TRANSAKSI AFTER INSERT ON PENJUALAN

FOR EACH ROW DECLARE

X NUMBER;

BEGIN

X:=:NEW.JUMLAH_JUAL;

UPDATE STOCK SET JUMLAH_STOCK = JUMLAH_STOCK - X WHERE KODE_BARANG= :NEW.KODE_BARANG;

END;

/

(20)

SELECT * FROM STOCK;

SELECT * FROM PENJUALAN;

INSERT INTO PENJUALAN VALUES(‘BJ- 002’,’0002’,100);

SELECT * FROM STOCK;

(21)

CREATE OR REPLACE TRIGGER SALDO BEFORE INSERT ON STOCK

FOR EACH ROW

BEGIN

IF :NEW.JUMLAH_STOCK = 10 THEN

DBMS_OUTPUT.PUT_LINE(‘DATA STOCK TIDAK BOLEH KURANG DARI 10');

:NEW.JUMLAH_STOCK := :NEW.JUMLAH_STOCK *(-1) ; END IF;

END;

/

(22)

Mengaplikasikan trigger

=======================

-- CONNECT SEBAGAI USER SELAIN SYSlab4 dengan password oracle  CREATE TABLE log_trig_table

(USER_ID VARCHAR2(30), LOG_DATE TIMESTAMP, ACTION VARCHAR2(30));

 

(23)

CREATE OR REPLACE TRIGGER logon_trig AFTER LOGON ON DATABASE

BEGIN

INSERT INTO

log_trig_table(user_id,log_date,action) VALUES (USER, CURRENT_TIMESTAMP,

'Logging on');

END;

/

   

(24)

CREATE OR REPLACE TRIGGER logoff_trig BEFORE LOGOFF ON DATABASE

BEGIN

INSERT INTO

log_trig_table(user_id,log_date,action) VALUES (USER, CURRENT_TIMESTAMP,

'Logging off');

END;

/

   

Referensi

Dokumen terkait

• Daya Efektif (PE) adalah besarnya daya yang dibutuhkan untuk mengatasi gaya • hambat dari badan kapal (hull  ), agar kapal dapat bergerak dari satu tempat ke tempat • yang

Kesimpulan dari artikel tentang metode pembelajaran Think Pair Share ini adalah; metode pembelajaran Think Pair Share merupakan tipe model pembelajaran kooperatif yaitu

Sistem Berhasil Meliha t halam an Home Menampi lkan halaman utama Sistem Berhasil Meng elola data siswa Insert data siswa Sistem Berhasil Meliha t data siswa

Perlakuan yang sama pada benih yang diinokulasi menunjukkan pengaruh yang lebih baik pada tinggi bibit 6 MST dan jumlah daun 3 MST yaitu 8,3 cm dan 1,3 dibanding kontrol

Pemerintah Daerah Istimewa Yogyakarta secara aktif memanfaatkan potensi kakayaan budaya DIY yang khas, unik dan beragam melalui diplomasi budaya

Pada tahapan ini pengurus DPD Partai Golongan Karya Kota Tanjungpinang melakukan sebuah penjaringan melalui aturan yang ada mengenai siapa yang pantas dan berhak

Penelitian tindakan kelas (PTK) ini menggunakan model penelitian Kurt Lewin. Penelitian ini dilaksanakan dalam dua siklus setiap siklus terdiri dari empat tahapan yaitu:

Beberapa faktor kenaikan harga-harga kebutuhan pokok memang tidak bisa dipisahkan dengan faktor resesi ekonomi dunia yang kian memburuk seiring dengan krisis umum