IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

trigger AFTER INSERT [MySQL-5.6]


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Points : 15
    Points
    15
    Par défaut trigger AFTER INSERT
    Bonjour,

    J'ai un souci, mon trigger AFTER INSERT déclenche une erreur 1442 (HY000).

    Voici mon trigger :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DELIMITER |
    CREATE TRIGGER after_insert_inscription AFTER INSERT ON T_Inscription
    FOR EACH ROW
    BEGIN
          UPDATE T_Inscription  
          SET NEW.Date_inscription = now();
    END |
    DELIMITER ;
    et mon insert :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T_Inscription (FK_Pers, FK_Cours)
        VALUES (11, 'MENU');
    Pourriez-vous m'aider et me dire où se situe mon erreur ?

    Merci d'avance

    Michel

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    J'ai trouvé mon erreur.

    Il est impossible de modifier les données d'une table utilisée par la requête ayant déclenché le trigger à l'intérieur de celui-ci.

    Et dans mon cas, le trigger AFTER INSERT ON T_Inscription modifie les données de la table T_Inscription.

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Pas tout à fait, mais déjà il faut utiliser un trigger BEFORE pour pouvoir modifier des données, par ailleurs il ne faut pas coder l'update mais simplement :
    SET NEW.Date_inscription = now();

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Merci pour la précision.
    Je ne comprend pas votre "pas tout à fait" mais je débute
    Je ne désespère pas :-)

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Il est impossible de modifier les données d'une table utilisée par la requête ayant déclenché le trigger à l'intérieur de celui-ci.
    Pas tout à fait, donc c'est en parti vrai, mais en l’occurrence votre problème est ailleurs.
    Il ne faut pas coder d'UPDATE, mais simplement affecter une valeur à NEW.colonne
    Par ailleurs, pour modifier / affecter les valeurs NEW il faut le faire dans un trigger BEFORE.

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Un tout grand merci pour cet éclaircissement et votre patience

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trigger after insertion pas validée
    Par guigeek dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/12/2006, 13h37
  2. Trigger after insertion pas validée
    Par guigeek dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/12/2006, 14h23
  3. Un Trigger After INSERT peut-il empêcher l'INSERT ?
    Par cian2006 dans le forum Oracle
    Réponses: 3
    Dernier message: 13/09/2006, 17h27
  4. Trigger after insert, sans each row, possible ??
    Par veenie dans le forum Oracle
    Réponses: 5
    Dernier message: 16/02/2006, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo