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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Ajout de triggers


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Ajout de triggers
    Bonjour à tous,

    J'aimerais me former sur l'utilisation des triggers sur phpmyadmin cela dit, je n'arrive pas à en créer un seul avec n'importe quel tutorial trouvé sur internet.
    A chaque fois mysql me sort une erreur, par exemple, avec ce tutorial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        CREATE TABLE test1(a1 INT);
        CREATE TABLE test2(a2 INT);
        CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
        CREATE TABLE test4(
        a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        b4 INT DEFAULT 0
        );
     
        DELIMITER |
     
        CREATE TRIGGER testref BEFORE INSERT ON test1
        FOR EACH ROW BEGIN
        INSERT INTO test2 SET a2 = NEW.a1;
        DELETE FROM test3 WHERE a3 = NEW.a1;
        UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
        END;
        |
     
        DELIMITER ;
    J'obtient l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     MySQL a répondu:Documentation
    #1064 - Erreur de syntaxe pr s de 'DELIMITER |
     
        CREATE TRIGGER testref BEFORE INSERT ON test1'   la ligne 1
    Voilà, j'aimerais un peu d'aide pour savoir ce que je fais de mal, j'ai essayé avec les deux dernières version de EasyPHP.

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    quelle est ta version de mysql ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    C'est la version 4.1.9 de MySQL et la version 2.6.1 de PhpMyAdmin

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Pour utiliser les déclencheurs il vous faudra d'abord mettre à jour MySQL (ils ne sont apparues qu'à la version 5.0.2)

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Merci je vais tester ca de suite

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    J'ai installé WAMP server qui dispose de la version 5.0.51a et j'obtient toujours un message d'erreur avec le même code ci-dessus, voici le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    requête SQL:
     
    DELIMITER;
     
    MySQL a répondu:Documentation
    #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 'DELIMITER' at line 1

  7. #7
    Invité
    Invité(e)
    Par défaut
    pour comprendre une erreur il faut chercher :

    je connais pas la signification de "delimiter" en mysql, donc je cherche sur gogle : "delimiter mysql" je tombe sur http://dev.mysql.com/doc/refman/5.0/...-commands.html

    delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter
    Donc en gros ça sert pas a grand chose dans un script, juste a dire quelle est le séparateur de requête ... de plus je suis pas sur que ce soit conforme aux normes sql, donc pas forcément présent dans toutes les version de mysql, donc je pense a éviter. (a vérifier)

    Essaie d'exécuter tes requêtes les unes après les autres. (en utilisant ";" comme délimiteur)

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Le problème ne vient pas de là, voici l'erreur sortie après n'avoir tapé que le trigger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #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 '' at line 3
    il me présente le trigger en erreur sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TRIGGER testref BEFORE INSERT ON test1
    FOR EACH
    ROW BEGIN
    INSERT INTO test2
    SET a2 = NEW.a1;
    en me placant la croix devant la ligne "ROW BEGIN"

    Donc la je ne comprends encore moins mon problème.

Discussions similaires

  1. Ajouter un trigger à un contrôle en code C# uniquement
    Par jo_la_pasteque dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 11/04/2014, 14h42
  2. Ajouter des Triggers dynamiquement à une TextBox
    Par Drannor dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 02/03/2012, 16h53
  3. Comment ajouter un trigger à MySQL
    Par Gobelins dans le forum SQL Procédural
    Réponses: 17
    Dernier message: 29/01/2010, 01h36
  4. [AJAX] ajouter un trigger dynamiquement
    Par zooffy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/12/2007, 00h18
  5. TRIGGER (test avant ajout) ne fonctionne pas correctement
    Par marcusien dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2007, 18h02

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