Précédent   Forum des professionnels en informatique > PHP > Outils > phpMyAdmin
phpMyAdmin Forum d'entraide sur l'outil phpMyAdmin : installation, utilisation, etc. Avant de poster -> Cours phpMyAdmin
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2008, 20h11   #1
Invité régulier
 
Inscription : mars 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 28
Points : 6
Points : 6
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 :
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 :
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
fitiwizz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 20h50   #2
Membre expérimenté
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 426
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 426
Points : 584
Points : 584
quelle est ta version de mysql ?
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 11h36   #3
Invité régulier
 
Inscription : mars 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 28
Points : 6
Points : 6
C'est la version 4.1.9 de MySQL et la version 2.6.1 de PhpMyAdmin
fitiwizz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 11h54   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Pour utiliser les déclencheurs il vous faudra d'abord mettre à jour MySQL (ils ne sont apparues qu'à la version 5.0.2)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 12h25   #5
Invité régulier
 
Inscription : mars 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 28
Points : 6
Points : 6
Merci je vais tester ca de suite
fitiwizz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 12h43   #6
Invité régulier
 
Inscription : mars 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 28
Points : 6
Points : 6
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 :
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
fitiwizz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 13h37   #7
Membre expérimenté
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 426
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 426
Points : 584
Points : 584
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

Citation:
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)
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 16h19   #8
Invité régulier
 
Inscription : mars 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 28
Points : 6
Points : 6
Le problème ne vient pas de là, voici l'erreur sortie après n'avoir tapé que le trigger :
Code :
#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 :
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.
fitiwizz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h49.


 
 
 
 
Partenaires

Hébergement Web