2017-02-10 12 views
0

Я хочу создать триггер для вставки значения в другую таблицу, когда значение вставлено в первую таблицу.Как вставить значение из a в другую таблицу с помощью триггера

Пока мой триггер выглядит следующим образом:

CREATE TRIGGER tgIdPass 
AFTER INSERT 
ON tbuser FOR EACH ROW 

BEGIN 

DECLARE vIdPass INT 
SET vIdPass = NEW.id 
INSERT INTO tbpass.fkUser VALUES vIdPass 
END 

Когда я пытаюсь запустить код, он дает эту ошибку «# 1064 - У вас есть ошибка в вашем синтаксисе SQL, проверьте руководство, которое соответствует ваша версия сервера MariaDB для правильного синтаксиса для использования рядом с «SET vIdPass = NEW.id INSERT INTO tbpass.fkUser VALUES vIdPass END» в строке 8 »

Итак, кто-нибудь может подсказать мне, почему я получаю эту ошибку?

+0

Не должен ли быть точкой с запятой ';' 'после DECLARE vIdPass INT' –

+0

Там нет необходимости в переменном. Просто выполните 'INSERT INTO tbpass.fkUser VALUES (NEW.id)' – Barmar

ответ

1

Нужна DELIMITERs и терминаторы утверждений.

DELIMITER // 
CREATE TRIGGER tgIdPass 
AFTER INSERT 
ON tbuser FOR EACH ROW 

BEGIN 

DECLARE vIdPass INT; -- terminate statements 
... 
END 
// 
DELIMITER ;