2014-09-18 3 views
0

У меня есть 2 таблицы, Portfolio и Transactions. Когда вы вставляете значение Transaction_Amount в транзакции, портфолио также должно быть обновлено. Ниже представлена ​​структура таблицы.Ошибка в SQL Trigger

enter image description here

Я создал триггер так всякий раз, когда я ввожу значение в Transactions, то Portfolio будет обновляться тоже.

Ниже мой MYSQL Trigger

USE `custom_sample`; 
DELIMITER $$ 
CREATE TRIGGER `Transactions_AINS` AFTER INSERT ON `Transactions` FOR EACH ROW 
UPDATE Portfolio 
SET Invest_Amount = Invest_Amount+Transactions.Transaction_Amount 
where 
Portfolio.idPortfolio = Transactions.idPortfolio 

Однако это не сработало. Он говорит Unknown column Transactions.idPortfolio in where clause

Что не так с моим скриптом?

ответ

1

В записи таблицы, на которую может быть получена ссылка, можно ссылаться на NEW (или OLD для значений, указанных в случае обновления) вместо имени таблицы.

CREATE TRIGGER `Transactions_AINS` AFTER INSERT ON `Transactions` 
FOR EACH ROW 
    UPDATE Portfolio 
    SET Invest_Amount = Invest_Amount + NEW.Transaction_Amount 
    WHERE idPortfolio = NEW.idPortfolio 
+0

Awesome .. Спасибо! –