CREATE Trigger Syntaxe IF THEN END IF;

big-66 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
 Mutating -
Bonjour,

Je suis sous mysql 5.1.36 et j'arrive pas a crée un trigger en mettant la condition if dedans voici un exemple de la syntaxe qui veut pas marcher :
delimiter |
CREATE TRIGGER trg_name AFTER INSERT ON tbl_name
FOR EACH ROW BEGIN
IF id = 1 then

insert into tabl_name2 SET at2 = NEW.at1;
end if ;
END
|

1 réponse

Mutating
 
Tu es sûr de pouvoir faire un insert dans une table pendant le trigger déclenché par un insert dans cette même table ?

la décomposition de l'insert est :
1- début de l'insertion
2- début trigger avant
3- corps trigger avant
4- fin trigger avant
5- insertion ligne dans la table
6- début trigger après
7- corps trigger après
8- fin trigger après
9- fin de l'insertion

si tu envoies un insert pendant l'étape 3, tu te retrouves avec un process récursif sans condition d'arrêt :-(... jamais aucune étape 4 ne sera exécutée;
0