2014-09-18 3 views
0

J'ai 2 tables, Portfolio et Transactions. Lorsque vous insérez la valeur Transaction_Amount dans les transactions, le portefeuille doit également être mis à jour. Voici la structure de la table.Erreur dans le déclencheur SQL

enter image description here

J'ai créé un déclencheur de sorte à chaque fois que j'insère une valeur dans la Transactions, le Portfolio sera mis à jour aussi.

est Ci-dessous mon 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 

Cependant, cela ne fonctionne pas. Il dit Unknown column Transactions.idPortfolio in where clause

Quel est le problème avec mon script?

Répondre

1

L'enregistrement de la table déclenchée peut être référencé par NEW (ou OLD pour les valeurs avant dans le cas d'une mise à jour) au lieu du nom de la table.

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

Génial .. Merci! –