Trigger adalah suatu objek dalam basisdata yang terdapat pada bagian tabel. Trigger untuk menempatkan suatu prosedure berkaitan dengan perubahan pada isi tabel. Cara kerja trigger adalah merespon berkaitan dengan perintah DML (INSERT , UPDATE, DELETE) pada tabel.
Adapun jenis perubahan yang dijalankan dalam trigger adalah :
- BEFORE INSERT on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi INSERT di TABEL1
- AFTER INSERT on TABEL menjalankan proses di dalamnya pada saat sesudah melakukan operasi INSERT di TABEL1
- BEFORE UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sebelum melakukan operasi UPDATE di TABEL1
- AFTER UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sesudah melakukan operasi UPDATE di TABEL1
- BEFORE DELETE on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi DELETE di TABEL1
- AFTER DELETE on TABEL1 : menjalankan proses di dalamnya pada saat sesudah melakukan operasi DELETE di TABEL1
Contoh : sederhana Transaksi penjualan :
Perhatikan gambar dibawah
Gambar di atas pada saat melakukan transaksi penjualan, terjadi
penambahan rekaman pada tabel jual, berisi no nota, tanggal transaksi,
kode barang, jumlah barang. Pada saat penambahan rekaman di tabel jual
berpengaruh langsung dengan isi tabel barang, yaitu mengurangi stok
barang yang dijual. Proses ini anda bisa menggunakan perintah-printah
dalam trigger /pemicu. Cara menciptakan triger adalah.
Klik pada tabel jual, pilih dan klik kanan mouse ke Triggers, seperti gambar berikut :
Klik pada tabel jual, pilih dan klik kanan mouse ke Triggers, seperti gambar berikut :
Klik Create Trigger
Klik Create
Hingga seperti kode barikut :
Klik Execute All Queries
UPDATE barang SET stok=stok-NEW.jumlah WHERE kd_brg=NEW.kd_brg; : isi stok barang dalam tabel BARANG akan dikurangi, dengan field NEW.jumlah (dari masukkan field jumlah pada tabel JUAL).
Keterangan :
AFTER INSERT on : pemicu akan menjalankan perintah seudah operasi INSERT pada tabel JUAL.UPDATE barang SET stok=stok-NEW.jumlah WHERE kd_brg=NEW.kd_brg; : isi stok barang dalam tabel BARANG akan dikurangi, dengan field NEW.jumlah (dari masukkan field jumlah pada tabel JUAL).
Lakukan Pengujian
Lihat stok barang :mysql> SELECT * from barang;
+——–+—————+
——+——–+——-+
| kd_brg | nm_brg | stok | satuan | harga |
+——–+—————+——+——–+——-+
| K0001 | Buku | 90 | Pcs | 5000 |
| K0002 | Pesil 2B | 200 | Pcs | 3000 |
| K0003 | Pengahpus | 100 | Pcs | 1000 |
| K0004 | Kertas HVS | 200 | Rem | 30000 |
| K0005 | Gunting kecil | 10 | Pcs | 6000 |
+——–+—————+——+——–+——-+
5 rows in set (0.00 sec)Lihat tabel jual :
mysql> SELECT * from jual;
+———+————+——–+——–+
| no_nota | tgl | kd_brg | jumlah |
+———+————+——–+——–+
| 0001 | 2009-10-13 | K0001 | 2 |
| 0002 | 2009-11-25 | K0001 | 8 |
+———+————+——–+——–+
2 rows in set (0.01 sec)Transakasi penjualan :
mysql> INSERT INTO jual VALUES(’0003′,’2009-11-25′,’K0002′,20);
Query OK, 1 row affected (0.00 sec) Perhatikan barang dengan kd_brg=’K0002’ telah dijual 20, maka stok 200-20=180
Lihat di stok barang.
mysql> SELECT * from barang WHERE kd_brg=’K0002′;
+——–+———-+——+——–+——-+
| kd_brg | nm_brg | stok | satuan | harga |
+——–+———-+——+——–+——-+
| K0002 | Pesil 2B | 180 | Pcs | 3000 |
+——–+———-+——+——–+——-+
1 row in set (0.00 sec)
Penambahan di tebel JUAL
mysql> SELECT * from jual;
+———+————+——–+——–+
| no_nota | tgl | kd_brg | jumlah |
+———+————+——–+——–+
| 0001 | 2009-10-13 | K0001 | 2 |
| 0002 | 2009-11-25 | K0001 | 8 |
| 0003 | 2009-11-25 | K0002 | 20 |
+———+————+——–+——–+
3 rows in set (0.00 sec)
Selamat mencoba
Untuk memperbaiki dan mengembangkan web ini menjadi lebih baik, mari bersama - sama kita bangun, caranya? Apabila kamu menemukan link yang mati/sudah tidak berfungsi atau gambar yang sudah tidak muncul/expire, silahkan hubungi kami disini. Laporan anda sangat berpengaruh pada perkembangan blog ini.Tanks atas perhatiannya
GET UPDATE VIA EMAIL
Dapatkan kiriman artikel yang terbaru
Dari Kami langsung ke email anda!
Dari Kami langsung ke email anda!
0 komentar:
Posting Komentar