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