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 :

Erreur lors de la création d'un trigger


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Par défaut Erreur lors de la création d'un trigger
    Bonjour à tous !
    Alors voila je travaille actuellement sur GLPI et OCS Inventory (pour ceux qui connaissent) basés sur une base MySQL.
    Et je voudrais créer un TRIGGER qui a chaque insertion dans une table vérifie le champ et le supprime s'il correspond.
    Pour le moment j'ai ca...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TRIGGER suppr_printers BEFORE INSERT ON printers
    FOR EACH ROWS BEGIN
    IF (NEW.name like '%PDF%') THEN
      DELETE FROM printers WHERE name like '%PDF%';
    END IF;
    IF (NEW.name like '%Fax%') THEN
      DELETE FROM printers WHERE name like '%Fax%';
    END IF;
    END;
    Et MySQL me répond

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
    CREATE TRIGGER suppr_printers BEFORE INSERT ON printers
    FOR EACH ' at line 1
    Sur la page principale de PHPMyadmin voici la version du serveur...

    Version du serveur: 5.0.27-community-nt

    Donc normalement les Triggers sont possibles

  2. #2
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    A première vue, c'est FOR EACH ROW (sans S)

  3. #3
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Par défaut
    Toujours pareil...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Erreur
    requête SQL: 
     
    CREATE TRIGGER suppr_printers BEFORE INSERT ON printers
    FOR EACH
    ROW BEGIN IF( NEW.name LIKE '%PDF%' ) 
    THEN 
    DELETE FROM printers WHERE name LIKE '%PDF%';
     
     
     
    MySQL a répondu: 
     
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM printers WHERE name LIKE '%PDF%'' at line 4

  4. #4
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    Première erreur :
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
    CREATE TRIGGER suppr_printers BEFORE INSERT ON printers
    FOR EACH ' at line 1'
    Deuxième erreur :
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM printers WHERE name LIKE '%PDF%'' at line 4
    C'est donc positif on avance

    Je ne sais pas si tu as donné la procédure complète mais il manque les fin de bloques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TRIGGER suppr_printers BEFORE INSERT ON printers
    FOR EACH ROW
    BEGIN
         IF( NEW.name LIKE '%PDF%' ) THEN 
              DELETE FROM printers WHERE name LIKE '%PDF%';
         END IF;
    END;

    Attention au DELIMITER il est souvent source de problèmes, quel client utilise utilise tu ?

  5. #5
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Par défaut
    J'utilise PHPMyAdmin si c'est ce que tu veux savoir...

  6. #6
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Dans ce cas tente ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TRIGGER suppr_printers BEFORE INSERT ON printers
    FOR EACH ROW
    BEGIN
         IF( NEW.name LIKE '%PDF%' ) THEN 
              DELETE FROM printers WHERE name LIKE '%PDF%';
         END IF;
    END;
    //
    Et dans la console qui te permet d'exécuter la requête spécifie le délimiteur // en bas de la popup.

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

Discussions similaires

  1. erreur lors de la création trigger mysql
    Par risfox dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/09/2011, 11h42
  2. Erreur lors de la création d'un trigger
    Par dnboa dans le forum PL/SQL
    Réponses: 7
    Dernier message: 17/09/2008, 11h58
  3. Réponses: 4
    Dernier message: 23/05/2006, 17h04
  4. message d'erreur lors de la création de la base
    Par ber_jp dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/05/2004, 12h15
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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