Pernahkah Teman-Teman sekalian menggunakan trigger?
Bagi dunia programming hal ini pasti sudah tidak asing lagi.
Yup
Trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel pada database. Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE ataupun delete pada suatu tabel .
Menurut saya sendiri, jika menggunakan trigger, maka dapat memudahkan pembuatan program, sehingga kita hanya butuh syntac program entry data tanpa melakukan coding proses yang sudah dilakukan sebelumnya oleh trigger. Semoga bermanfaat
Berikut merupakan beberapa contoh Trigger
1. Trigger Pembelian Barang
Pada Trigger ini, stok barang akan bertambah secara otomatis pada tabel stok data cd setelah melakukan transaksi pada tabel pembelian barang. Trigger ini juga dapat menghitung total pembayaran pada pembelian barang sehingga field total pembayaran akan terisi secara otomatis pada tabel pembelian di database
DELIMITER $$
USE `rental`$$
DROP TRIGGER /*!50032 IF EXISTS */ `insertpembelian`$$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `insertpembelian` BEFORE INSERT ON `transdetpembelian`
FOR EACH ROW BEGIN
SET @hrg = new.harga_cd;
SET @jml = new.jum_cd;
SET @total = @hrg * @jml;
SET new.totalbeli = @total;
INSERT INTO datacd SET
kd_datacd = New.kd_datacd,
total_keping = New.jum_cd
ON DUPLICATE KEY UPDATE total_keping = total_keping + new.jum_cd;
END;
$$
DELIMITER ;
Keterangan :
transdetpembelian merupakan tabel transaksi pembelian
datacd merupakan tabel stok data cd
2. Trigger Peminjaman Barang
Pada trigger ini, stok barang pada data cd akan berkurang karna telah dilakukan transaksi peminjaman pada tabel peminjaman
Trigger ini juga dapat menghitung total pembayaran pada peminjaman barang sehingga field total pembayaran akan terisi secara otomatis pada tabel peminjaman di database
DELIMITER $$
USE `rental`$$
DROP TRIGGER /*!50032 IF EXISTS */ `insert_pinjam`$$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `insert_pinjam` BEFORE INSERT ON `transdetpinjam`
FOR EACH ROW BEGIN
SET @hrg = new.harga_pinjam;
SET @jml = new.jum_cd;
SET @total = @hrg * @jml;
SET new.total_hargapinjam = @total;
INSERT INTO datacd SET
kd_datacd = New.kd_datacd,
total_keping = New.jum_cd
ON DUPLICATE KEY UPDATE total_keping = total_keping - new.jum_cd;
END;
$$
DELIMITER ;
3. Trigger untuk menentukan pembayaran tagihan telpon
DELIMITER $$
USE `dbspeedy141200137`$$
DROP TRIGGER /*!50032 IF EXISTS */ `speedy_biaya`$$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `speedy_biaya` BEFORE INSERT ON `speedy`
FOR EACH ROW BEGIN
IF new.jenispel = 'umum' THEN
SET new.tarifperjam= 1000;
ELSE IF new.jenispel = 'office' THEN
SET new.tarifperjam= 2000;
END IF;
END IF;
SET new.lamaakses= TIMEDIFF(new.jamaksesselesai,new.jamaksesmulai);
SET new.biayaakses = HOUR(new.lamaakses) * new.tarifperjam + MINUTE(new.lamaakses) * new.tarifperjam/60 + SECOND(new.lamaakses) * new.tarifperjam/3600;
END;
$$
DELIMITER ;
Lama pemakaian, dan total bayar akan terisi otomatis, tarif pun juga terisi otomatis berdasarkan jenis tarif setelah di entry kan data pada sistem.
Tidak ada komentar:
Posting Komentar