Triggers dans PhpMyAdmin

Eléphanteau du PHP | 10 Messages

28 déc. 2005, 08:53

Salut à tous,

Dans Direction PHP de décembre on y parle des triggers ce qui m'intéresse vraiment.

Un exemple est donné ou l'on insère un nombre dans la table chiffres, lors de cette insertion s'il est pait alors on le range dans la table pair sinon dans la table impair. Chaque table n'a qu'un champ nommé x.

L'exemple est donné en ligne de commande mais j'aimerais l'exécuter dans phpmyadmin. Cela a l'air de bloquer à la première ligne.

PS : j'utilise WAMP5 phpmyadmin 2.6.4-pl4 Mysql MySQL 5.0.16-nt

A vous tous.
Irunea

Code : Tout sélectionner

Mysql > delimiter // mysql > CREATE TRIGGER pairimpair BEFORE INSERT ON chiffres -> FOR EACH ROW BEGIN -> if (NEW.x mod 2) THEN -> INSERT INTO test.impair VALUES (NEW.x); -> else -> INSERT INTO test.pair VALUES (NEW.x); -> end if; -> END -> //
Apprenons à penser par nous-même. Si nous ne le faisons pas, d'autres le ferons pour nous...

Mammouth du PHP | 19672 Messages

28 déc. 2005, 09:43

Quel est exactement le message d'erreur ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 10 Messages

28 déc. 2005, 13:30

Cyrano,

Si je mets seulement la commande

Code : Tout sélectionner

delimiter //
j'obtiens :

Code : Tout sélectionner

ERROR: Ponctuation invalide @ 11 STR: // SQL: delimiter //
Il semble que delimiter serve à indiquer à MySql que le fin de la commande sera // et non le point virgule. Mais cela n'a pas l'air de passer

Irunea
Apprenons à penser par nous-même. Si nous ne le faisons pas, d'autres le ferons pour nous...

Mammouth du PHP | 19672 Messages

28 déc. 2005, 13:54

Selon la doc, redéfinir un délimiteur te permet d'utiliser le ";" à l'intérieur du trigger. As-tu essayé en utilisant un autre délimiteur que "//" ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 10 Messages

29 déc. 2005, 08:33

Salut à tous,

J'ai essayé de changer le delimiter mais j'en suis tourjours au même point.

J'ai aussi essayé de créer le trigger en mode console mais cela plante le serveur local.

Je suis à la recherche d'un exemple qui marche...

Alain
Apprenons à penser par nous-même. Si nous ne le faisons pas, d'autres le ferons pour nous...

Mammouth du PHP | 19672 Messages

29 déc. 2005, 12:13

Bon, je n'ai pas installé MySQL5 sur ma machine et je ne peux pas tester, mais un truc que j'essayerais, c'est un autre outil que phpMyAdmin : tu peux télécharger gratuitement Mysql Query Browser chez MySQL AB
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: