MySQL觸發器增刪改實例

表字段
商品表: goods(gid,gname,price)其屬性是商品編碼,商品名稱,單價
銷售表: detail (did,gid,price,shuliang,jine)其屬性是銷售單號,商品編號,單價,數量,金額

添加商品,自動向銷售明細裏添加數據

DELIMITER $$
DROP TRIGGER IF EXISTS ins_detail_on_goods $$
CREATE TRIGGER ins_detail_on_goods 
AFTER INSERT ON goods
FOR EACH ROW BEGIN
INSERT detail(gid,price,shuliang,jine) VALUES(new.gid,new.price,0,0);
END$$

刪除商品,自動刪除銷售明細裏的數據

DELIMITER $$
DROP TRIGGER IF EXISTS del_detail_on_goods $$
CREATE TRIGGER del_detail_on_goods 
AFTER DELETE ON goods
FOR EACH ROW BEGIN
DELETE FROM detail WHERE gid=old.gid;
END$$

修改商品的單價,自動修改銷售明細裏對應商品的單價和金額

DELIMITER $$
DROP TRIGGER IF EXISTS upd_detail_on_goods $$
CREATE TRIGGER upd_detail_on_goods 
AFTER UPDATE ON goods
FOR EACH ROW BEGIN
UPDATE detail SET price=new.price,jine=shuliang*(new.price) WHERE gid=(SELECT gid FROM goods WHERE  price=new.price);
END$$
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章