TRIGGER adalah kumpulan kode SQL yang berjalan secara otomatis untuk mengeksekusi perintah INSERT, UPDATE, DELETE. Biasanya TRIGGER akan dijalankan sebelum atau sesudah proses INSERT, UPDATE, DELETE (Perintah DML) Cara penulisan TRIGGER Untuk memulai menggunakan TRIGGER kita gunakan CREATE
TRIGGER dilanjutkan nama TRIGGER yang ingin dibuat {BEFORE | AFTER} adalah waktu TRIGGER akan dijalankan, apakah sebelum atau sesudah database dimodifikasi oleh perintah DML {INSERT | UPDATE | DELETE} adalah perintah DML yang mengaktifkan TRIGGER Lebih detail waktu TRIGGER akan dijelaskan di tabel berikut
ON mendefinisikan table yang mengaktifkan TRIGGER BEGIN END adalah pernyataan yang membungkus kode TRIGGER Pastikan diawal gunakan DELIMITER $$ dan diakhir dikembalikan ke DELIMITER ; seperti dalam membuat Stored Procedure Hands OnPada Hands-On TRIGGER akan dibuat 2 table yaitu table mahasiswa dan table log_mahasiswa Table mahasiswa -> menyimpan data mahasiswa Table log_mahasiswa -> menyimpan perubahan data mahasiswa Jadi setiap ada perubahan data (UPDATE) alamat mahasiswa pada table mahasiswa maka akan disimpan di table log_mahasiwa tentang histori perubahan data alamat tersebut. Dengan adanya log perubahan data mahasiswa maka akan memudahkan dalam melihat histori data mahasiswa yang pernah berubah dalam sistem. Table mahasiswa CREATE TABLE mahasiswa ( nim INT(10), nama VARCHAR(100), alamat VARCHAR(100), PRIMARY KEY(nim) ); INSERT INTO mahasiswa VALUES (21400200,"faqih","bandung"), (21400201,"ina","jakarta"), (21400202,"anto","semarang"), (21400203,"dani","padang"), (21400204,"jaka","bandung"), (21400205,"nara","bandung"), (21400206,"senta","semarang");
Table log_mahasiswa CREATE TABLE log_mahasiswa ( id_log INT(10) AUTO_INCREMENT, nim INT(10), alamat_lama VARCHAR(100), alamat_baru VARCHAR(100), waktu DATE, PRIMARY KEY(id_log) );Membuat TRIGGER Kita akan menyimpan data perubahan alamat sebelum perintah UPDATE dijalankan DELIMITER $$ CREATE TRIGGER update_alamat_mahasiswa BEFORE UPDATE ON mahasiswa FOR EACH ROW BEGIN INSERT INTO log_mahasiswa set nim = OLD.nim, alamat_lama=old.alamat, alamat_baru=new.alamat, waktu = NOW(); END$$ DELIMITER ; Keyword OLD digunakan untuk mengambil data kolom di table yang lama sedangkan keyword NEW digunakan untuk mengambil data kolom di table yang baru Sekarang kita akan coba update alamat mahasiswa dengan NIM 21400200. Sebelum diupdate alamat mahasiswa dengan NIM 21400200 adalah “bandung” Kita ganti alamat “bandung” menjadi “surabaya” UPDATE mahasiswa SET alamat = 'surabaya' WHERE nim = 21400200; Sekarang coba lakukan perintah SELECT untuk melihat table log_mahasiswa > SELECT * FROM log_mahasiswa; +--------+----------+-------------+-------------+------------+ | id_log | nim | alamat_lama | alamat_baru | waktu | +--------+----------+-------------+-------------+------------+ | 1 | 21400200 | bandung | surabaya | 2019-11-02 | +--------+----------+-------------+-------------+------------+ 1 row in set (0.00 sec) Oke, record baru secara otomatis telah ditambahkan ke table log_mahasiswa untuk mahasiswa dengan NIM 21400200 yang telah diubah alamat awal “bandung” menjadi “surabaya” Sedangkan pada table mahasiswa alamat yang tercantum adalah alamat yang baru > SELECT * FROM mahasiswa WHERE nim=21400200; +----------+-------+----------+ | nim | nama | alamat | +----------+-------+----------+ | 21400200 | faqih | surabaya | +----------+-------+----------+ 1 row in set (0.00 sec) Materi MySQL dibagi menjadi beberapa tutorial antara lain: Cara Install XAMPP di Windows dan Linux Belajar MySQL Lanjut : Cara Menggunakan
JOIN Post navigationApa itu trigger di mysql?Trigger dalam database adalah kode prosedural yang secara otomatis dijalankan untuk menanggapi perubahan tertentu pada table tertentu atau tampilan dalam database. Trigger dapat didefinisikan untuk menjalankan penrintah sebelum atau setelah eksekusi DML (Data Manipulation Language) seperti INSERT, UPDATE, dan DELETE.
Apa peristiwa yang menyebabkan trigger dilakukan?trigger_event : merupakan event atau peristiwa yang menyebabkan trigger dilakukan.
Apa fungsi trigger SQL?TRIGGER adalah kumpulan kode SQL yang berjalan secara otomatis untuk mengeksekusi perintah INSERT, UPDATE, DELETE.
Apa itu trigger dalam sistem basis data?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.
|