#1064尝试制作触发器SQL时发生错误

时间:2018-09-04 11:29:12

标签: triggers mariadb

当我尝试运行应创建触发器的sql代码

create trigger userid_to_tokens
after insert on users
as
begin
    insert into tokens
        (token_id)
        select i.user_id
        from users t
        inner join inserted i on t.user_id=i.user_id
end
  

错误:#1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在“在开始插入令牌(token_id)时选择i.user_id”的第3行附近使用

2 个答案:

答案 0 :(得分:0)

正如create trigger上的mariadb文档所示,在as关键字之前没有begin关键字。语法错误消息中带引号的代码通过用as ...开始代码摘录来表明这一点。

答案 1 :(得分:0)

as替换for each row,更改定界符,在MySQL中,它是NEW而不是inserted

delimiter //
create trigger userid_to_tokens
after insert on users
for each row
begin
    insert into tokens (token_id) VALUES (NEW.user_id);
end
//
delimiter ;