Anda disini » Home » , » Trigger

Trigger

Sebelum Membaca, Ayo Berbagi :
Perubahan isi tabel terjadi pada saat pengguna melakukan transaksi. Transaksi ini biasanya juga berpengaruh terhadap tabel-tabel lain. Sebagai contoh : pada saat transaksi penjualan sistem akan menambah rekaman tabel JUAL sebelum perintah INSERT misalnya mengecek jumlah stok di tabel BARANG, dan sesudahnya mengurangi stok di tabel BARANG. Oleh karena itu anda bisa menempatkan trigger yang merupakan prosedur pemicu untuk melakukan proses sesuai dengan keinginan.
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 :
  1. BEFORE INSERT on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi INSERT di TABEL1
  2. AFTER INSERT on TABEL menjalankan proses di dalamnya pada saat sesudah melakukan operasi INSERT di TABEL1
  3. BEFORE UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sebelum melakukan operasi UPDATE di TABEL1
  4. AFTER UPDATE on TABEL1 menjalankan proses di dalamnya pada saat sesudah melakukan operasi UPDATE di TABEL1
  5. BEFORE DELETE on TABEL1 : menjalankan proses di dalamnya pada saat sebelum melakukan operasi DELETE di TABEL1
  6. 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 Create Trigger
Klik Create
Hingga seperti kode barikut :
Klik Execute All Queries

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

Attention
PLEASE ATTENTION !

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 thanks

GET UPDATE VIA EMAIL
Dapatkan kiriman artikel yang terbaru
Dari Kami langsung ke email anda!

0 komentar:

Posting Komentar

Silahkan berikan komentar, kritikan atau saran anda mengenai artikel di Atas Komentar yang tidak sesuai topik, SPAM, Penghinaan, dsb terpaksa akan saya hapus ! Tanks be 4,,.

 

Copyright ©2012.