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

 

 

你可能感兴趣的:(数据库)