TRIGGER.

Slides:



Advertisements
Presentasi serupa
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Trigger.
Advertisements

Sejarah (1) • Tahun 1974, Dr. Chamberlin dari Saan Jose Laboratorium IBM mendefinisikan sebuah bahasa untuk mengakses database yang disebut dengan SEQUEL.
Pertemuan 2 : Dasar-dasar SQL SBD C – Senin, Frank & Rudy
SISTEM BASIS DATA INTRO-5. •Setelah mengikuti perkuliahan ini diharapkan mahasiswa dapat mengerti : 1.Aplikasi perintah SQL ke MySql Server 2.Mengerti.
Error Handling (Exception) & INDEX
PERINTAH SQL.
Dasar-dasar SQL soesanto.
Database Create-Retrieve-Update-Delete (CRUD)
DDL & Aturan Referential
T R I G G E R.
SQL: Queries II, Constraints & Triggers (Chap. 5 – Ramakrishnan)
Manajemen Basis Data menggunakan SQL Server
TRIGGER.
Pertemuan 4 Database dengan MySQL.
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
CHANGE DATA CAPTURE.
Database Process By Masmur Tarigan, ST
Trigger.
Pelatihan Oracle sub : Pembuatan aplikasi dengan Visual Basic
Konsep Dasar User dan Schema Database
DDL & Aturan Referential
DATA MANIPULATION LANGUAGE (DML)
Praktek Pemograman Client-Server
STORED PROCEDURE Achmad Yasid, SKom.
Procedure Siti Mukaromah, S.Kom.
TRIGGER Siti Mukaromah, S.Kom.
TRIGGER.
Microsoft SQL Server DDL dan DML dasar
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
BASIS DATA TERAPAN Pertemuan 2.
Data Types Data Definition Language Referential Constraint SQL Query
TRIGGER.
SQL Basis Data.
Integritas Basis Data D. Sinaga, M.Kom.
C U R S O R.
TRIGGER LANJUT.
TRIGGER (Statement & Row Trigger)
TRIGGER SYAIFUL HUDA, S.Kom.
FUNGSI-FUNGSI AKSES MySql
Integritas Basis Data D. Sinaga, M.Kom.
STORED PROCEDURE & TRIGGER
Integritas basis data.
SQL.
Bahasa query terpan.
Konsep Teknologi Informasi B
View dan Trigger Materi 5
Manajemen Basis Data menggunakan SQL Server
Data Manipulation Languange (DML) Perintah INSERT dan DELETE
Sistem Basis Data ABU SALAM, M.KOM.
DATA MANIPULATION LANGUAGE (DML)
SQL Basis Data.
Praktikum Berkas dan Basis Data
SQL OVERVIEW.
Procedure Siti Mukaromah, S.Kom.
OLEH : Slamet Sn Wibowo Wicaksono
BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS
Structured Query Language
Integritas Basis Data #3,#4
EXERCISE DML Part I Buatlah sebuah tabel baru nama = Dosen
ORACLE Trigger Hasan Dwi Cahyono.
CURSOR.
Trigger.
Oleh : FIRMAN JAYA, S.Pt, M.Kom
Integritas Basis Data Triggers, Store Procedure
Integritas basis data.
CREATE, MODIFY, & DELETE TABLE
Referensi Bahasa MySQL
12/6/2018 TRIGGER Pemrograman Basis Data Siti Mukaromah, S.Kom.
ORACLE PL/SQL TRIGGER Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
10/14/2019 TRIGGER Pemrograman Basis Data.
Transcript presentasi:

TRIGGER

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

EVENT TRIGGER 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

Syntax Trigger

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.

CONTOH PENGGUNAAN TRIGGER 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 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);

TRIGGER BEFORE INSERT 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 INSERT INTO STOCK VALUES ('0006','COMPUTER',20);

TRIGGER AFTER UPDATE 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 UPDATE STOCK SET JUMLAH_STOCK = 10 WHERE KODE_BARANG='0006';

TRIGGER AFTER DELETE 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 DELETE FROM STOCK WHERE KODE_BARANG='0006';

Mengakses Data Lama dan Baru 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.

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

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

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

SELECT. FROM STOCK; SELECT SELECT * FROM STOCK; SELECT * FROM PEMBELIAN; INSERT INTO PEMBELIAN VALUES(‘FB- 002’,’0002’,100);

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

SELECT * FROM STOCK; SELECT * FROM PENJUALAN; INSERT INTO PENJUALAN VALUES(‘BJ- 002’,’0002’,100);

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

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

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

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