2016-12-09 7 views
0

У меня возникают некоторые проблемы с этим триггером в mysql. Я новичок с триггерами, процедурами, событиями и т. Д. ... так что, если моя ошибка будет легко найти. Мой Mysql Xampp версия: 4.5.1 И упомянутый триггер:Ошибка: Insert After Trigger

DELIMITER // 
CREATE TRIGGER actualitzarStock 
AFTER INSERT ON detallcompra 
FOR EACH ROW 
BEGIN 
UPDATE producte SET producte.stock = (producte.stock - 
detallcompra.quantitat) 
where producte.idProducte = detallcompra.idProducte 
END 
DELIMITER // 

Ошибка Я ПОЛУЧАТЬ просто: «Ошибка». Итак, спасибо всем, кто пытается мне помочь!

ответ

1

Для ссылки на новую строку, добавляемую в detallcompra, вы должны использовать NEW, а не имя таблицы.

CREATE TRIGGER actualitzarStock 
AFTER INSERT ON detallcompra 
FOR EACH ROW 
    UPDATE producte 
    SET producte.stock = (producte.stock - NEW.quantitat) 
    where producte.idProducte = NEW.idProducte; 
+0

Я видел уведомление 30 секунд назад ... подумал, что это могло быть noob, поэтому я закончил свой ответ. –

+0

Привет! да, я noob xD. Я пробовал ваше решение, @Barmar, но он не работает, в сообщении говорится: # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с «DELIMITER» // CREATE TRIGGER actualitzarStock ПОСЛЕ INSERT ON detallcompra FOR 'в строке 1 " – Joan

+0

Как вы это вводите? используя интерфейс, который не требует изменения разделителя, поэтому избавьтесь от строк 'DELIMTER'. – Barmar

Смежные вопросы