2013-08-06 5 views
1

Ceci est refrence à ma question précédenteTrigger dans mysql se plaignent

rails callbacks not getting executed

Or, puisque le cadre ne fonctionne pas un peu de temps je pensais plutôt d'écrire un déclencheur pour faire

donc mon regard de déclenchement comme celui-ci

DELIMITER $$ 
CREATE TRIGGER sales_earning AFTER INSERT ON sales_transactions FOR EACH ROW 
BEGIN 
    DECLARE earning INT; 
    SET earning = (select sales_earning from payouts where id = NEW.payout_id); 
    earning = earning + NEW.amount 
    UPDATE payouts SET sales_earning = earning where id = NEW.payout_id ; 
END $$ 
DELIMITER ; 

Toute personne a la moindre idée ce que le problème est avec la gâchette de se plaindre

ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de '= gagnant + NEW.amount;

Pour votre information, il est parent - enfant entre les paiements et sales_transactions

Toute aide

Répondre

1
CREATE TRIGGER sales_earning AFTER INSERT ON sales_transactions FOR EACH ROW 
    UPDATE payouts 
    SET sales_earning = sales_earning + NEW.amount 
    WHERE id = NEW.payout_id 
; 
0

Il vous manque un ; après earning = earning + NEW.amount

Et vous devez faire:

SET earning = (select sales_earning from payouts where id = NEW.payout_id) + NEW.amount; 

MISE À JOUR:

Ma réponse indique ce qui ne va pas avec votre déclencheur, mais si c'est tout ce que vous voulez faire avec les gains, vous devez simplement le faire comme la réponse d'eggyal est