Modul 9 - Trigger
Modul 9 - Trigger
1. CREATE
2. TRIGGER nama_trigger
3. {BEFORE | AFTER}
4. {INSERT | UPDATE | DELETE}
5. ON nama_tabel
6. FOR EACH ROW
7. statemen
Penjelasan:
FOR EACH ROW. Artinya trigger akan dijalankan pada setiap baris yang
dikenai operasi DML. Standar ANSI menggunakan klausa FOR EACH
STATEMEN, yang hingga saat ini belum disupport oleh MySQL.
INSERT berarti trigger akan aktif jika ada data ditambahkan pada tabel,
yang biasanya dilakukan melalui statemen INSERT. Selain itu, trigger
ini juga aktif pada implisit INSERT, seperti pada statemen LOAD DATA
dan REPLACE, dimana pada kedua statemen tersebut, MySQL di
belakang layar akan menjalankan statemen INSERT
UPDATE berarti trigger akan aktif ketika ada perubahan data pada tabel
yang dilakukan melalui statemen UPDATE.
Sebagai contoh, kita akan membuat trigger dengan melibatkan tabel buku,
tabel penjualan_detail, dan tabel penjualan seperti yang kita gunakan
pada bab bab sebelumnya:
Tabel buku:
mysql> SELECT id_buku, id_kategori, judul, harga, stok FROM buku LIMIT 5;
+---------+-------------+-----------------------------------------+-------+------+
| id_buku | id_kategori | judul | harga | stok |
+---------+-------------+-----------------------------------------+-------+------+
| 1 | 3 | Pemrograman Database Menggunakan MySQL | 59000 | 5 |
| 2 | 2 | PHP dan MySQL Langkah Demi Langkah + CD | 75000 | 6 |
| 3 | 3 | MySQL Untuk Pemula | 34800 | 4 |
| 4 | 2 | Kumpulan Aplikasi PHP untuk Pemula | 34800 | 3 |
| 5 | 2 | Pemrograman PHP Dan MySQL Untuk Pemula | 69000 | 2 |
+---------+-------------+-----------------------------------------+-------+------+
5 rows in set (0.00 sec)
Tabel penjualan_detail:
Tabel penjualan: