mysql觸發器創建失敗------原因及解決辦法

1.檢查SQL語句有沒有問題

    CREATE TRIGGER trigger_name
    trigger_time
    trigger_event ON tbl_name
    FOR EACH ROW # 固定語句
    begin
      # SQL語句
    end

參數解釋:

  1. trigger_name 觸發器名

  2. trigger_time 觸發器的執行時機(AFTER或者BEFORE)。before就是在sql執行之前,先執行觸發器;after相反。

  3. trigger_event 觸發器的觸發事件(常見的有3種:insert、uodate、delete)

  4. tbl_name 則是觸發器要加在哪張表中

  5. 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;
$$

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章