Pembuatan Triger Insert, Update MySQL Server
https://carakuvb6.blogspot.com/2017/11/pembuatan-triger-insert-update-mysql.html
Fasilitas Triger pada MySQL Database Server tentunya sudah tidak asing lagi ditelinga kita dengan adanya fasilitas Triger ini sangat membantu para programmer dalam membangun sistem dengan menggunakan database MySQL Database Server. Kali ini admin akan sedikit share tentang cara Pembuatan Triger Insert, Update MySQL Database Server. Buat database terlebih dahulu
CREATE DATABASE `BelajarTriger`
CHARACTER SET 'latin1'
COLLATE 'latin1_swedish_ci';
CREATE DATABASE `BelajarTriger`
CHARACTER SET 'latin1'
COLLATE 'latin1_swedish_ci';
Database yang admin buat BelajarTriger selanjutnya diteruskan dengan pembuatan tabel-tabelnya diantaranya barang, stok, penjualan
CREATE TABLE `barang` (
`IDBARANG` varchar(16) DEFAULT NULL,
`NMBARANG` varchar(50) DEFAULT NULL,
`JUMBRG` int(11) DEFAULT NULL,
`ID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
CREATE TABLE `penjualan` (
`IDBARANG` varchar(16) DEFAULT NULL,
`JUMBRG` int(11) DEFAULT NULL,
`ID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
CREATE TABLE `stok` (
`IDBARANG` varchar(20) NOT NULL,
`NMBARANG` varchar(50) DEFAULT NULL,
`JUMBRG` int(11) DEFAULT NULL,
PRIMARY KEY (`IDBARANG`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Pembuatan database dan tabel-tabel pun telah selesai, sekarang coba kita membuat triger pada tabel barang terlebih dahulu fasilitas yang diberikan oleh MySQL Server terutama untuk pembuatan triger CREATE TABLE `barang` (
`IDBARANG` varchar(16) DEFAULT NULL,
`NMBARANG` varchar(50) DEFAULT NULL,
`JUMBRG` int(11) DEFAULT NULL,
`ID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
CREATE TABLE `penjualan` (
`IDBARANG` varchar(16) DEFAULT NULL,
`JUMBRG` int(11) DEFAULT NULL,
`ID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
CREATE TABLE `stok` (
`IDBARANG` varchar(20) NOT NULL,
`NMBARANG` varchar(50) DEFAULT NULL,
`JUMBRG` int(11) DEFAULT NULL,
PRIMARY KEY (`IDBARANG`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
BEFORE INSERT – dijalankan ketika data di masukan ke dalam table
AFTER INSERT – dijalankan setelah data masuk ke dalam table
BEFORE UPDATE – dijalankan sebelum proses update data
AFTER UPDATE – dijalankan setelah proses proses update data
BEFORE DELETE – dijalankan sebelum proses delete data
AFTER DELETE – dijalankan setelah proses delete data
Tinggal yang mana akan dipilih sesuai dengan keadaan dari struktur database yang agan-agan buat, pertama kita buat terlebih dahulu triger ditabel barang untuk scriptnya seperti dibawah ini
CREATE TRIGGER `barang_after_ins_tr` AFTER INSERT ON `barang`
FOR EACH ROW
BEGIN
INSERT INTO stok SET idbarang = NEW.idbarang, JUMBRG=New.JUMBRG,NMBARANG=new.NMBARANG
ON DUPLICATE KEY UPDATE JUMBRG=JUMBRG+New.JUMBRG;
END;
Pengertian dari script triger diatas adalah pada saat tabel barang diinputkan data, maka secara otomatis triger pun bekerja dan mencari data pada tabel stok, jika didapati data dengan kode idbarang belum ada, maka data tersebut berupa input data baru pada tabel stok, akan tetapi jika data sudah ada ditabel stok untuk jumbrg akan ditambahkan secara otomatis sesuai dengan jumbrg yang ada pada tabel barang. Selanjutnya kita buat kembali triger pada tabel penjualan dengan script dibawah ini
CREATE TRIGGER `penjualan_after_upd_tr` AFTER INSERT ON `penjualan`
FOR EACH ROW
BEGIN
UPDATE stok SET jumbrg = jumbrg - NEW.jumbrg WHERE
idbarang = NEW.idbarang;
END;
Untuk pengertian script pada tabel penjualan kali ini, berfungsi sebagai pengurangan stok, untuk tabel penjualan kita asumsikan sebagai barang yang keluar secara otomatis stok yang ada terkurang sejumlah barang yang keluar tersebut.
CREATE TRIGGER `penjualan_after_upd_tr` AFTER INSERT ON `penjualan`
FOR EACH ROW
BEGIN
UPDATE stok SET jumbrg = jumbrg - NEW.jumbrg WHERE
idbarang = NEW.idbarang;
END;
Untuk pengertian script pada tabel penjualan kali ini, berfungsi sebagai pengurangan stok, untuk tabel penjualan kita asumsikan sebagai barang yang keluar secara otomatis stok yang ada terkurang sejumlah barang yang keluar tersebut.
Inputkan beberapa data pada tabel barang kemudian buka tabel stok dan perhatikan jumbrg dari masing-masing tabel yaitu tabel barang dan stok, jumlah barang yang masuk pada tabel barang akan sama jika didalam tabel stok belum ada barang yang sama diinputkan pada tabel barang.
Untuk tabel stok diatas jumbrg sama dengan jumbrg tabel barang yang diinputkan, sekarang admin akan inputkan kembali ditabel barang dengan salah satu idbarang yang sama dengan jumbrg yang berbeda untuk kode barang : 0001 jumbrg awal : 20 dan admin inputkan untuk jumbrg : 7
Coba perhatikan kotak merah transparant, nominal jumbrg pada tabel stok secara otomatis penjualan dari tabel barang per kode barang. Begitu juga pada tabel penjualan, sekarang admin akan mencoba inputkan data dengan kode barang 0001 dan jumbrg 7, seharusnya sisa stok nanti akan menjadi 27 - 7 = 20
Sangat mudah dan complek bukan peran fasilitas triger yang terdapat pada MySQL Database Server. Semoga artikel kali ini bermanfaat bagi yang membacanya
Perhatian !!
- Berkomentarlah dengan menggunakan bahasa yang baik dan sopan dan sesuai topik pembahasan
- Dilarang menjadikan referensi artikel web ini tanpa menyertakan sumbernya