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

SQL Procédural MySQL Discussion :

[ MYSQL 5.6] Trigger, Capture d'erreur et syntaxe


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Points : 35
    Points
    35
    Par défaut [ MYSQL 5.6] Trigger, Capture d'erreur et syntaxe
    Bonjour,

    J'ai deux tables dans une base mysql avec une table acceptant les doublons et une autre avec un index unique.
    J'ai fais un trigger pour déclencher une requête d'insertion dans la table avec index quand on insert une ligne dans la table avec doublon.
    Pour gérer les erreurs de doublons dans la table avec index afin que la requête d'insertion parente fonctionne, j'ai mis un 'DECLARE EXIT HANDLER FOR 1062;'.
    Mais Mysql me retourne une erreur de syntaxe et je ne comprends pas pourquoi...
    Je suis passé par l'interface de phpmyadmin pour faire le trigger.

    Nom : Capture phpmyadmin.PNG
Affichages : 483
Taille : 27,3 Ko

  2. #2
    Membre confirmé Avatar de isabelle.letrong
    Femme Profil pro
    Conseil - Consultante en systèmes d'information
    Inscrit en
    Juillet 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultante en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 109
    Points : 487
    Points
    487
    Par défaut Gestion d'un Handler
    Citation Envoyé par rorschach2 Voir le message
    Bonjour,

    J'ai deux tables dans une base mysql avec une table acceptant les doublons et une autre avec un index unique.
    J'ai fais un trigger pour déclencher une requête d'insertion dans la table avec index quand on insert une ligne dans la table avec doublon.
    Pour gérer les erreurs de doublons dans la table avec index afin que la requête d'insertion parente fonctionne, j'ai mis un 'DECLARE EXIT HANDLER FOR 1062;'.
    Mais Mysql me retourne une erreur de syntaxe et je ne comprends pas pourquoi...
    Je suis passé par l'interface de phpmyadmin pour faire le trigger.

    Nom : Capture phpmyadmin.PNG
Affichages : 483
Taille : 27,3 Ko
    Bonjour rorschach2,

    Je n'utilise pas phpadmin, mais ce qui ne convient pas dans ce que j'aperçois, c'est que vous ne différenciez pas le code du handler de celui du corps du trigger en lui même.

    En conclusion, vous devez encadrer la clause 'DECLARE EXIT HANDLER FOR 1062' d'un 'BEGIN...END;' avant de d'écrire le corps du trigger.
    Par ailleurs, en général, on fait quelque chose dans le handler pour gérer l'erreur...

    Bien cordialement.

Discussions similaires

  1. Erreur de syntaxe sur trigger avec mysql 5.1
    Par WhoIsTiti dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 29/03/2012, 08h18
  2. [MySQL] Erreur de syntaxe (tiret)
    Par nicof3 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/04/2006, 10h22
  3. Réponses: 5
    Dernier message: 25/04/2006, 02h02
  4. [Servlet - MySQL] Ca marche mais message d'erreur quand même
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/11/2004, 16h15
  5. Trigger : Message d'erreur
    Par Ricardeau dans le forum InterBase
    Réponses: 9
    Dernier message: 10/03/2004, 14h10

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