Anda di halaman 1dari 11

TRIGGER

 Merupakan sebuah script MySql yang memicu terjadinya suatu kejadian seperti INSERT,
UPDATE, DELETE secara otomatis setelah syarat tertentu
 Mungkin melalui pengertiannya akan membingungkan, oleh karena itu mari kita
praktekkan.
PERTAMA

 BUAT DATABASE DAHULU


KEDUA

CREATE TABLE beli(


id_beli INT( 11 ) NOT NULL AUTO_INCREMENT ,
kd_barang VARCHAR( 5 ) DEFAULT NULL ,
nama_barang VARCHAR( 20 ) DEFAULT NULL ,
jumlah INT( 11 ) DEFAULT NULL ,
PRIMARY KEY ( id_beli )
) ENGINE = MYISAM DEFAULT CHARSET = utf8;
KETIGA

CREATE TABLE jual(


id_jual INT( 11 ) NOT NULL AUTO_INCREMENT ,
kd_pelanggan VARCHAR( 10 ) NOT NULL ,
kd_barang VARCHAR( 5 ) DEFAULT NULL ,
nama_barang VARCHAR( 20 ) DEFAULT NULL ,
jumlah INT( 11 ) DEFAULT NULL ,
PRIMARY KEY ( id_jual )
) ENGINE = MYISAM DEFAULT CHARSET = utf8;
KEEMPAT

CREATE TABLE stok


(kd_barang varchar(5) NOT NULL
, jumlah int(11) NOT NULL
, PRIMARY KEY (kd_barang)
) ENGINE = MYISAM DEFAULT CHARSET = utf8;
 Sekarang kita sudah mempunyai 3 table yang akan dieksekusi, alurnya seperti ini : Jika ada
pembelian (kita membeli barang ke distributor) maka akan menambah stok barang.
 Jika ada penjualan (ada yang membeli barang kita) maka akan mengurangi stok barang
TRIGGER BELI

CREATE TRIGGER beli_barang after INSERT ON beli


FOR EACH ROW BEGIN
INSERT INTO stok SET
kd_barang = NEW.kd_barang, jumlah=New.jumlah
ON DUPLICATE KEY UPDATE jumlah=jumlah+New.jumlah;
END
 Trigger diberi nama beli_barang, dan trigger akan bekerja setelah memasukkan data
kedalam table beli.
 Dan secara otomatis akan menambahkan stok barang kedalam table stok.
 Karena data pada table beli masih nol, jika kita memasukkan data ke table beli, maka tidak
akan ada penjumlahan yang terjadi.
TRIGGER JUAL

CREATE TRIGGER jual_barang after INSERT ON jual


FOR EACH ROW BEGIN
UPDATE stok
SET jumlah = jumlah - NEW.jumlah
WHERE
kd_barang = NEW.kd_barang;
END
SEKIAN & TERIMA KASIH

Anda mungkin juga menyukai