Cara Membuat Trigger di MySQL

Trigger adalah sebuah Script MySQL Command yang memicu suatu kejadian dalam database MySQL berupa aksi insert, update dan delete setelah syarat tertentu. Lokasi penulisan Trigger adalah di dalam database yang bersangkutan, dan Trigger tidak ditempatkan di php script. 

Hasil penulisan dari sebuah Trigger akan menimbulkan efek manipulasi database secara otomatis sesuai dengan yang kita inginkan. Misalnya, setelah insert pada tabel_a dan kolom a1 maka akan otomatis insert pada tabel_b pada kolom b1. Begitu pula untuk aksi update dan delete. 

Untuk pembuatan Trigger ini saya menggunakan Xampp Versi 1.7.3,browser Chrome dengan sistem operasi Windows7 Ultimate.

Disini saya akan membuat sebuah trigger untuk penjualan dan pembelian sebuah barang, maka buatlah sebuah database dan table seperti contoh dibawah ini.

Database : Create database db_test
Pertama buat Tabel Barang, untuk sql bisa copas dibawah ini.
CREATE TABLE  `test`.`tb_barang` (
`kode_barang` VARCHAR( 10 ) NOT NULL ,
`stok` INT NOT NULL ,
PRIMARY KEY (  `kode_barang` )
) ENGINE = MYISAM ;

Tabel Beli
CREATE TABLE  `test`.`tb_beli` (
`kode_beli` VARCHAR( 10 ) NOT NULL ,
`kode_barang` VARCHAR( 10 ) NOT NULL ,
`satuan` VARCHAR( 30 ) NOT NULL ,
`jumlah` INT NOT NULL ,
PRIMARY KEY (  `kode_beli` )
) ENGINE = MYISAM ;


Tabel Jual
CREATE TABLE  `test`.`tb_jual` (
`kode_jual` VARCHAR( 10 ) NOT NULL ,
`kode_barang` VARCHAR( 10 ) NOT NULL ,
`satuan` VARCHAR( 30 ) NOT NULL ,
`jumlah` INT NOT NULL ,
PRIMARY KEY (  `kode_jual` )
) ENGINE = MYISAM ;

Selanjutnya kita akan membuat trigernya, untuk triger beli berarti ketika ada pembelian maka stok yang ditabel barang akan bertambah, sedangkan untuk penjualan berarti stok di tabel barang akan berkurang.
Untuk trigger menggunakan delimiter $$ untuk membatasi akhir dari sebuah trigger, maka letakkan seperti gambar dibawah ini.

Buat Trigger beli 
CREATE TRIGGER beli_barang AFTER INSERT ON tb_beli
FOR EACH
ROW BEGIN
INSERT INTO tb_barang
SET kode_barang = NEW.kode_barang,
stok = New.jumlah ON DUPLICATE KEY UPDATE stok = stok + New.jumlah;
END
Maka hasilnya ketika anda menambahkan data jumlah yang kodenya sama pada tabel barang
Maka stok yang berada di tabel barang akan bertambah


Buat Trigger Jual
CREATE TRIGGER jual_barang after INSERT ON tb_jual
 FOR EACH ROW BEGIN
 UPDATE tb_barang
 SET stok = stok – NEW.jumlah
 WHERE
 kode_barang = NEW.kode_barang;
 END
Maka hasilnya ketika anda menambahkan data jumlah yang kodenya sama pada tabel barang
Maka stok yang berada di tabel barang akan berkurang.
Dan selesailah pembahasan kita mengenai artike trigger ini, bila ada yang ditanyakan silahkan bertanya di kolom komentar, semoga artikel ini bisa membantu dan bermanfaat 🙂.

4 thoughts on “Cara Membuat Trigger di MySQL

  1. kalau misalnya kita mau hapus data dari tabel beli, bagaimana trigger nya agar bisa ter-update di tabel barang? dan juga apabila kita update jumlah dari salah satu data di tabel beli, bagaimana agar dapat ter-update di tabel barang?

    thanks

Leave a Reply

Your email address will not be published. Required fields are marked *