7/22/2019 03 Trigger
1/11
TRIGGER
D3 Komputer dan Sistem InformasiSekolah Vokasi UGM
2012
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
2/11
Membuat Trigger
CREATE TRIGGER nama_triggerwaktu_trigger kejadian_triggerON nama_tabel
FOR EACH ROW isi_trigger
Keterangan :
waktu_trigger :
BEFORE | AFTERkejadian_trigger :INSERT | UPDATE | DELETE
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
3/11
Contoh Trigger1
Buatlah tabel-tabel berikut :
Tabel latih1
id1 INTEGER
Tabel latih2 id2 INTEGER
Tabel latih3
id3 INTEGER, PRIMARY KEY, AUTO_INCREMENT
Tabel latih4
id4 INTEGER, PRIMARY KEY, AUTO_INCREMENT
no4 INTEGER, DEFAULT 0
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
4/11
Contoh Trigger1-lanjutan
DELIMITER ##
CREATE TRIGGER trig_satu
BEFORE INSERT ON latih1
FOR EACH ROW
BEGIN
INSERT INTO latih2 SET id2 = NEW.id1;
DELETE FROM latih3 WHERE id3 = NEW id1;
UPDATE latih4 SET no4=no4+1 WHERE id4 = NEW.id1;
END;##
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
5/11
Contoh Trigger1-lanjutan
Masukkan data-data berikut :
10 baris nilai NULL ke tabel latih3
10 baris nilai 0 ke kolom id4 pada tabel latih
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
6/11
Melihat Triggeryang Telah Dibuat
Sintaks berikut ini digunakan untuk melihat statustriggeryang telah dibuat pada suatu basis data.
SHOW TRIGGERS [FROM nama_basisdata |
LIKE nama_tabel];
Sintaks berikut ini digunakan untuk melihatstatement prosedur SQL pada triggeryang telahdibuat.
SHOW CREATE trigger nama_trigger;
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
7/11
Mengaktifkan trig_satu
Karena kejadian yang dipilih adalah INSERT,
maka untuk mengaktifkan triggerkita
masukkan data ke dalam tabel latih1.
Masukkan data-data berikut ke tabel latih1:
1, 3, 8, 4, 3, 1, 5, 3
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
8/11
Contoh Trigger 2
Buatlah tabel baru pada basis data sia dengan
nama program_studi_log yang berisi:
waktu DATETIME, PRIMARY KEY
kode_prodi CHAR(3)
nama VARCHAR(50)
kode_jurusan CHAR(3)
oleh VARCHAR(50)
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
9/11
Contoh Trigger 2
DELIMITER ^^
CREATE TRIGGER trig_prodi AFTER UPDATE
ON program_studi
FOR EACH ROW
BEGIN
INSERT INTO program_studi_log VALUES
(NOW(), OLD.kode_prodi, OLD.nama,OLD.kode_jurusan, USER());
END^^
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
10/11
Mengaktifkan trig_prodi
Karena kejadian yang dipilih adalah UPDATE,
maka untuk mengaktifkan triggerkita ubah
data pada tabel program_studi.
Ubah Matematika menjadi Matematika
Murni
Ubah Ilmu Komputer menjadi S1
KOMSI
Praktikum Basis Data 2 - rizkiaf
7/22/2019 03 Trigger
11/11
Latihan Trigger
Buatlah tabel barang (kode_barang,
nama_barang, stok, satuan, harga) dan
tabel jual (kode_nota, tanggal, kode_barang,
jumlah).
Buatlah trigger yang dapat mengurangkan
stok barang secara otomatis ketika ada
transaksi penjualan!
Praktikum Basis Data 2 - rizkiaf