2015-12-06 5 views
1

Я новичок в mysql и пытаюсь создать триггер. Я хочу взять недавно вставленное значение из одной таблицы и хочу обновить другую таблицу, вычитая эти значения из значения в этой таблице.mysql trigger для обновления строки

CREATE TRIGGER inventory_updated 
    AFTER INSERT ON ORDERdetails 
    for EACH ROW 
    BEGIN 
    UPDATE product_trial 
     SET Quantity = Quantity-NEW.quantity 
     where productid = new.ProductID; 
    END 

Это дает ошибку синтаксиса SQL вблизи линии 6 (запрос Update) ошибка 1064. Любезно помощь.

+0

Я предполагаю, что дубликат ** CREATE ** заявление было ошибкой - отредактируйте его, если это так. Кроме того, не могли бы вы включить макеты таблиц для двух таблиц? Результатом команды 'DESCRIBE' будет идея. –

ответ

1

В вашем примере вам не нужно BEGIN-END, потому что в цикле for выполняется один запрос. Если вы удалите их, если решает синтаксическую ошибку.

Если вам нужно сохранить Бегин-END, потому что ваша реальная жизнь случай является более сложным, то вам необходимо определить разделитель, а

DELIMITER \\ 
CREATE TRIGGER inventory_updated AFTER INSERT ON ORDERdetails for EACH ROW 
BEGIN 
    UPDATE product_trial SET Quantity = Quantity-NEW.quantity where productid = new.ProductID; 
END \\ 
Смежные вопросы