1. 程式人生 > >[MySQL]觸發器相關語句

[MySQL]觸發器相關語句

若declare報missing semicolon的錯誤,在sql語句前加上

DELIMITER $$

建立觸發器

DELIMITER $$
create trigger [觸發器名] 
AFTER [操作名:如update\delete\insert]
ON [表名]
for each row 
begin
    #要執行的操作
end;

例:

DELIMITER $$
create trigger TRI_Lineitem_Price_UPDATE AFTER UPDATE
ON lineitem
for each row 
begin
DECLARE L_valuediff real;#中間變數宣告
set L_valuediff=NEW.extendedprice*(1-NEW.discount)*(1+NEW.tax)-
			OLD.extendedprice*(1-OLD.discount)*(1+OLD.tax);
UPDATE orders set totalprice = totalprice + L_valuediff
WHERE orderkey = NEW.orderkey;
end;

刪除觸發器

drop trigger [觸發器名]

檢視當前資料庫的所有觸發器

​show triggers