MySQL 5.1.63-community

时间:2017-02-27 06:22:25

标签: mysql

我在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;

3 个答案:

答案 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)

如果触发器主体只包含一个语句,则不需要使用BEGINEND

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版本也不支持“分隔符”,我建议你改变版本。