2013-01-12 2 views
3

c'est la requête que j'utiliseMySQL Trigger Erreur de syntaxe fin inattendue d'entrée

create trigger trig1 after insert on participant for each row 
begin 
insert into team(sap) select sap from participant order by ID desc limit 1,1 
end; 

il est censé copier le champ de la sève de la table des participants dans le domaine de la sève de la table d'équipe après une nouvelle ligne est inséré dans la table des participants le moteur me montre une fin inattendue d'erreur d'entrée à la fin de « fin »

J'ai essayé de nombreuses méthodes pour retravailler la requête, mais je continue à obtenir la même erreur ce que je fais i faux?

grâce

+2

Nous ne pouvons pas savoir ce que vous faites mal à moins que vous postez votre code. S'il vous plaît poster votre code pertinent. –

Répondre

3

Vous utilisez trigger que pas besoin d'exécuter une requête sur la même table pour obtenir la dernière valeur sève, vous pouvez directement obtenir cette valeur à l'aide new.sap.

Problème dans votre requête, dans votre requête vous avez pas mis virgule (;) après INSERT..SELECT requête et END mot-clé.

Cela fonctionne pour vous:

DELIMITER $$ 

DROP TRIGGER /*!50032 IF EXISTS */ `trig1`$$ 

CREATE 
    TRIGGER `trig1` AFTER INSERT ON `participant` 
    FOR EACH ROW BEGIN 
     INSERT INTO team(sap) 
     VALUES(new.sap); 
    END; 
$$ 

DELIMITER ; 
+0

merci beaucoup .... qui a fonctionné .... en fait je ne savais pas ce que le nouveau mot-clé était pour –

Questions connexes