Pertemuan 8. Structured Query Language Bagain 3 2024
Pertemuan 8. Structured Query Language Bagain 3 2024
IF34413
Structured Query
Language Bagian 3
1. Responsi Query
2. Membuat Triger
3. Membuat Store Procedure
4. Membuat View
Perhatikan Physcal data Model
Persoalan
1. Tentukan Primary Key dalam Setiap table
2. Tentukan kardinalitas hubungan antar table
3. Simulasi Query Atas PhyscalDatamodel Di atas
4. Bawa Catatan dan Laptop
Cara Me-Restore Data Dengan Mysql Workbench
DELIMITER $$
CREATE TRIGGER nama_trigger
{BEFORE | AFTER} {INSERT |
UPDATE| DELETE }
SYNTAK ON nama_table
UMUM FOR EACH ROW
BEGIN
KODE SQL (Trigers Body)
END$$
DELIMITER ;
Syntak Umum dari Triger
Hands On
Pada Hands-On TRIGGER akan dibuat 2 table yaitu table Mastrbuku
dan table log_masterbuku
Waktu Triger
Waktu TRIGGERs Keterangan TRIGGERs
BEFORE INSERT TRIGGER dijalankan sebelum record
dimasukkan ke database
AFTER INSERT TRIGGER dijalankan sesudah record
dimasukkan ke database
BEFORE UPDATE TRIGGER dijalankan sebelum record dirubah di
database
AFTER UPDATE TRIGGER dijalankan sesudah record dirubah
database
DELIMITER $$
CREATE TRIGGER Insert_GroupKatagory
BEFORE INSERT ON tgroupcatagory
FOR EACH ROW
BEGIN
IF NOT EXISTS (SELECT KodeCatagory FROM tgroupcatagory WHERE
KodeCatagory=NEW.KodeCatagory) THEN
SET NEW.KodeCatagory = NEW.KodeCatagory, NEW.nama = NEW.nama;
ELSE
SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'Data Sudah Ada';
END IF;
END$$
DELIMITER ;
Trigers After Insert
Contoh : ketika ingin menambahkan data barang yang sudah terjual, maka otomatis
jumlah pada table Tmasterbuku,TdetailMasterbuku, tdetailmasterbukuunit akan
berkurang. Maka perintah untuk trigger dalam MySQL adalah
DELIMITER $$
CREATE TRIGGER Insert_After_Tsales
AFTER INSERT
ON tsales FOR EACH ROW
BEGIN
UPDATE tmasterbuku SET TotalStock=TotalStock-New.QtySales where IDBuku=NEW.IDBUku;
UPDATE tdetailmasterbuku SET Instock=Instock-New.QtySales where IDBuku=NEW.IDBUku and
KodeSupplier=NEW.KodeSupplier and KodeFamily=NEW.KodeFamily;
UPDATE tdetailmasterbukuunit SET Instock=Instock-New.QtySales where IDBuku=NEW.IDBUku
and KodeSupplier=NEW.KodeSupplier and KodeFamily=NEW.KodeFamily and Unit=NEW.KodeUnit;
END$$
DELIMITER;
Store Procedure
BEGIN
kode sql
END$$
DELIMITER ;