Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

T R I G G E R.

Presentasi serupa


Presentasi berjudul: "T R I G G E R."— Transcript presentasi:

1 T R I G G E R

2 TUJUAN Memahami konsep dasar trigger di dalam basis data.
Memahami implementasi trigger sebagai bentuk respon atas suatu kejadian. Mampu menyelesaikan kasus-kasus manipulasi data yang kompleks dengan memanfaatkan trigger.

3 DEFINISI Trigger dapat didefinisikan sebagai himpunan kode (prosedural) yang dieksekusi secara otomatis sebagai respon atas suatu kejadian berkaitan dengan tabel basis data. Kejadian (event) yang dapat membangkitkan trigger umumnya berupa pernyataan INSERT, UPDATE, dan DELETE.

4 JENIS-JENIS TRIGGER Berdasarkan ruang lingkupnya, trigger diklasifikasikan menjadi dua jenis: row trigger dan statement trigger. Dari sisi perilaku (behavior) eksekusi, trigger dapat dibedakan menjadi beberapa jenis; namun umumnya ada dua jenis: trigger BEFORE dan trigger AFTER.

5 TRIGGER di MySQL Sintaks pendefinisian trigger diperlihatkan sebagai berikut: CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt )

6 LATIHAN Buat trigger untuk menambahkan satu stok bonus untuk setiap pengentrian barang baru DELIMITER //  CREATE TRIGGER inkremenStok2 BEFORE INSERT ON barang  FOR EACH ROW BEGIN  -- Menambah nilai stok dengan 1 SET NEW.stok = NEW.stok + 1;  END //  DELIMITER ; )

7 Keyword OLD dan NEW Untuk merujuk ke kolom-kolom tabel yang diasosiasikan dengan trigger, kita menggunakan keyword OLD dan NEW. Keyword OLD mengacu pada nilai lama, sedangkan NEW merepresentasikan nilai baru. Di trigger INSERT keyword NEW Di trigger DELETE keyword OLD Di trigger UPDATE keyword OLD dan NEW Ubah

8 Keyword NEW Trigger Insert
Contoh berikut memperlihatkan penggunaan keyword NEW pada trigger INSERT. DELIMITER //  CREATE TRIGGER updateStok AFTER INSERT ON pembelian  FOR EACH ROW BEGIN  -- Update nilai stok barang UPDATE barang SET stok = stok + NEW.jml_beli WHERE id_brg = NEW.id_brg;  END //  DELIMITER ; Ubah

9 ILUSTRASI Ubah

10 Keyword OLD Trigger Delete
Misalkan kita ingin mendefinisikan trigger untuk menghapus semua data pembelian manakala data barang yang sesuai—diindikasikan melalui primary key dan foreign key—dihapus. DELIMITER //  CREATE TRIGGER deleteChild AFTER DELETE ON barang  FOR EACH ROW BEGIN  -- Hapus data pembelian yang berkorespondensi DELETE FROM pembelian WHERE id_brg = OLD.id_brg; -- id_brg pertama merujuk ke tabel pembelian -- OLD.id_brg merujuk tabel barang  END //  DELIMITER ; Ubah

11 ILUSTRASI Ubah

12 Keyword OLD & NEW Trigger Update
DELIMITER // CREATE TRIGGER updateStokEdit AFTER UPDATE ON pembelian FOR EACH ROW BEGIN -- Update nilai stok barang UPDATE barang SET stok = stok + (NEW.jml_beli - OLD.jml_beli) WHERE id_brg = NEW.id_brg; END // DELIMITER ; Ubah

13 ILUSTRASI Ubah

14 TRIGGER KOMPLEKS Keberadaan trigger secara nyata mampu mengatasi berbagai persoalan pelik, misalnya berkaitan dengan integritas atau audit data. Ini tentu sangat masuk akal, karena trigger juga bisa mengandung pernyataan- pernyataan yang kompleks—termasuk pencabangan, pengulangan, fungsi-fungsi agregat, bahkan kode pemanggilan prosedur.

15 TRIGGER KOMPLEKS Sebagai ilustrasi sederhana, kita bisa mendefinisikan trigger untuk memeriksa operasi penambahan data barang. Skenarionya, jika data sudah ada, berikan status eksistensi barang; sebaliknya, data bisa langsung dimasukkan. DELIMITER //  CREATE TRIGGER auditBarang BEFORE INSERT ON barang  FOR EACH ROW BEGIN IF NOT EXISTS (SELECT id_brg FROM barang WHERE id_brg =NEW.id_brg) THEN SET NEW.nama_brg = NEW.nama_brg, NEW.stok = NEW.stok; ELSE = CONCAT('Id ', NEW.id_brg, ' sudah ada'); END IF; END // DELIMITER ;

16 SELAMAT BELAJAR


Download ppt "T R I G G E R."

Presentasi serupa


Iklan oleh Google