# 1064 ОШИБКА при попытке сделать триггер sql - PullRequest
0 голосов
/ 04 сентября 2018

Когда я пытаюсь запустить свой 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 голосов
/ 04 сентября 2018

Замените 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 ;
0 голосов
/ 04 сентября 2018

Как показывает документация mariadb для Триггер создания , перед ключевым словом begin нет ключевого слова as. Код в кавычках в сообщении об ошибке синтаксиса указывает это, начиная отрывок кода с as ....

...