CREATE Trigger Syntaxe IF THEN END IF;

big-66 Messages postés 7 Statut Membre -  
 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

  1. 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