我在MySQL 5.1.63社区中编写了一个触发器,它总是注意:#1064 - 你的SQL语法有错误;查看与你的MySQL服务器版本相对应的手册,以便在第6行的''附近使用正确的语法,但我在navicat上为mysql运行代码,没关系。
代码在这里:
CREATE TRIGGER trig_sign
AFTER insert on students
for each row
Begin
INSERT INTO sign_in(num,uptime,flag,sid)
values(null,now(),false,NEW.sid);
end;
答案 0 :(得分:0)
你必须像这样重新定义delimiter ||
CREATE TRIGGER trig_sign
AFTER insert on students
for each row
Begin
INSERT INTO sign_in(num,uptime,flag,sid)
values(null,now(),false,NEW.sid);
end ||
delimiter;
:
android studio
此外,您可以在此处查看有关clumsily.的官方文档。
答案 1 :(得分:0)
如果触发器主体只包含一个语句,则不需要使用BEGIN
和END
:
CREATE TRIGGER trig_sign AFTER INSERT on students FOR EACH ROW
INSERT INTO sign_in(num,uptime,flag,sid) VALUES(null,now(),false,NEW.sid);
对于多个语句触发器,您需要切换分隔符:
DELIMITER //
CREATE TRIGGER trig_sign
AFTER INSERT on students
FOR EACH ROW
BEGIN
INSERT INTO sign_in(num,uptime,flag,sid)
VALUES(null,now(),false,NEW.sid);
-- more statements
END //
DELIMITER ;
答案 2 :(得分:0)
每个对我有些问题的人都可以按照Paul Spiegel的说法进行操作。如果它不起作用,我认为你的mysql版本也不支持“分隔符”,我建议你改变版本。