1.檢查SQL語句有沒有問題
CREATE TRIGGER trigger_name
trigger_time
trigger_event ON tbl_name
FOR EACH ROW # 固定語句
begin
# SQL語句
end
參數解釋:
-
trigger_name 觸發器名
-
trigger_time 觸發器的執行時機(AFTER或者BEFORE)。before就是在sql執行之前,先執行觸發器;after相反。
-
trigger_event 觸發器的觸發事件(常見的有3種:insert、uodate、delete)
-
tbl_name 則是觸發器要加在哪張表中
-
begin end之間寫程序體,如果僅有1條語句,則可以不用begin end,直接將語句寫在後面
例子:
CREATE TRIGGER ins_stu
AFTER INSERT ON student FOR EACH ROW
BEGIN
INSERT INTO cj (stu_id,stu_name)
VALUES(new.stuid, new.username);
END;
2.加 DELIMITER $$
那通常就是忘了加 DELIMITER $$ 我就是這個問題,煩擾了我好久。像下面這樣。
DELIMITER $$
CREATE TRIGGER ins_stu
AFTER INSERT ON student FOR EACH ROW
BEGIN
INSERT INTO cj (stu_id,stu_name)
VALUES(new.stuid, new.username);
END;
$$