|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre actif
![]() |
salut
j'ai un souci concernant les triggers, j'essaie de mettre comme un ptit test un champs en majuscule je mets Citation:
bref, ce que j'essaie de faire c'est incremonter le nombre de message pour chaque inscrit à chaque insertion d'un nouveau message, j'ai deux tables en relation une table inscrits et une table messages, biensure l'Id_inscrit de la table inscrits et une clé etrangere vers la table messages. voilà je sais pas comment proceder déjà je me bloque dans cette syntaxe de mettre en maj un champs, alors comment je peux faire pour faire ça je compte beaucoup sur vous merci en avance |
|
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() ![]() Pierre Ingénieur qualité méthodes Inscription : mars 2003 Messages : 3 726 ![]() |
Citation:
"update inscrits" est manifestement de trop.
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet) ----------------------- Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MPUsus magister est optimus |
|
|
|
00
|
|
|
#3 | ||
|
Membre actif
![]() |
salut gi130
Citation:
bref,j'ai déjà corrigé, je devais ajouter une reponse ici lol c bien pas de update inscrits juste un set suffit, mais ça m'aide pas trop sur ce que je cherche à faire, j'ai déjà dis ça....je cherche à modifier un champs qui se trouve dans une autre table, cad quand j'ajoute un enregistrement dans la table qui contient le trigger, un champs qui se trouve dans une autre table doit etre modifié. j'explique plus clairement ce que j'essaie de faire,voilà, j'ai deux tables en relation.. inscrits(Id_inscrit,nom,prenom,..,nb_message)et messages(Id_message,contenu,#Id_inscrit) l'ajout d'un nouveau enregistrement dans la table message doit incremonter le nb_message dans la table inscrits. je sais pas comment faire ça si je suis sensé ne pas utiliser de nom de table note: j'ai déjà fais ça sur sqlserver voilà le code : Citation:
merci. |
||
|
|
00
|
|
|
#4 | |
|
Membre actif
![]() |
salut
j'ai fais des recherches pour comprendre plus la syntaxe de mysql et j'ai trouvé ce lien http://dev.mysql.com/doc/refman/5.0/...e-trigger.html j'ai c/c le code du l'exemple suivant: Citation:
#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 'INSERT INTO test2 SET a2 = NEW.a1' at line 3 la syntaxe parait fausse, ça met une croix rouge sur INSERT INTO test2 pourtant c la syntaxe correcte que j'ai trouvé dans le manuel mysql 5.0, c bien la version que j'utilise |
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() Pierre Ingénieur qualité méthodes Inscription : mars 2003 Messages : 3 726 ![]() |
Quelle est le numéro de version exact et complet de MySQL ?
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet) ----------------------- Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MPUsus magister est optimus |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() |
salut
voilà le numero exacte de la version Version du client MySQL: 5.0.37 aussi la constante php_version m'affiche :5.2.3 |
|
|
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() ![]() Pierre Ingénieur qualité méthodes Inscription : mars 2003 Messages : 3 726 ![]() |
Citation:
Je précise : la version du serveur
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet) ----------------------- Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MPUsus magister est optimus |
|
|
|
00
|
|
|
#8 |
|
Membre actif
![]() |
lol j'ai pensé à mettre ça mais je me suis dis c pas necessaire ce qui compte le plus ce la version du mysql
Version du serveur: 5.0.41- j'ai fais même un print screen de phpmyadmin ou il ya tous sur les versions je le join ici, en fait j'utilise wamp5 |
|
|
00
|
|
|
#9 |
|
Membre actif
![]() |
je peux plus attacher des fichiers ici
pas grave j'utilise un lien pour ça voilà http://i21.tinypic.com/10ekeah.jpg |
|
|
00
|
|
|
#10 |
|
Membre actif
![]() |
merci pour votre aide
|
|
|
00
|
|
|
#11 |
|
Membre actif
![]() |
je touve même pas de doc sur ça pas assez, et ça m'aide pas ce que je trouve http://dev.mysql.com/doc/refman/5.0/...e-trigger.html
versions: Version du client MySQL: 5.0.37 Version du serveur: 5.0.41-community-nt Version du protocole: 10 j'ai essayé le code mais vu que je peu pas mettre de trigger avec une syntaxe... 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; je vois pas comment je peux faire autrement? |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 7 ![]() |
Salut,
essaye un truc du genre : 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| Attention , pour PhpMyAdmin tu as juste a modifier le Delimiteur (en dessous de la fenetre SQL) càd : tu fait la requete ci desssous: 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| Mais tu change le delimiteur en | Voila esperant t'avoir aidé |
|
|
00
|
|
|
#13 | ||
|
Membre actif
![]() |
salut 2_high
je croyais que ça aller marcher ce truc de delimiteur mais j'ai essayé tout ce qui est possible à essayer avec ça mais ça passe pas si j'execute ça.. |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| ça me donne cette erreur: Citation:
Citation:
|
||
|
|
00
|
|
|
#14 | |
|
Membre actif
![]() |
je me demande si vraiment ce ptit probleme de syntaxe n'a pas de solution :S
bon pour mon probleme ..j'aurais du essayer de faire ce que je veux directement, passer par la doc, mais fermer l'oeil sur les exemples qu'y sont mis bref, j'ai reussi mon ptit bout de script qui était très facile à ecrire après avoir lu la doc correspendante, mais ça m'a appris quand même des choses... sans ce probleme j'aurais pas à lire et essayer de trouver des indices pour deduire le probleme, voilà c'était juste ça ce que je voulais Citation:
![]() ça aide quand même de savoir debrouiller seul c dure, surtout quand tu est trop stressé par d'autre choses plus importantes. a+ |
|
|
|
00
|
|
|
#15 | |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 7 ![]() |
Citation:
Pour les delimiteur il ne fauit pas mettre de delimiteur au debut de la requete, uniquement a la fin essaye ca (t plus a ca près Pour PhpMyAdmin : 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| En mettant bien dans le champ DELIMITEUR la valeur "|" (Sans les guillement bien entendu :p Sinon si tu utilise un truc du genre MySQL Query browser tu fait : 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| n'hesite pas a faire un copier coller Voila, 2-high P.S : Oopx je m'etait arrete au premier post après le mien ! Ceci dit moi dans mes triggers g bien des BEGIN .. |
|
|
|
00
|
|
|
#16 |
|
Membre actif
![]() |
2-high you're not enough too high, look the number of messages that you have gotten, you're new in this forum, it's clear..lol
c'était pour plaisenter c pas une question de delimiteur que ça passe pas, avec ou sans delimiteur à la fin ça m'affiche cette 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 'INSERT INTO test2 SET a2 = NEW.a1' at line 3 il aime pas la requete insert into test2.. , j'ai essayé à la place update test2 set a2=new.a1 ,mais ça aime pas non plus c pas grave j'ai pas besoin de ça pour l'instant merci |
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 7 ![]() |
Ok j'insite pas.
Je disait ca juste parce que j'avais eu exactement le meme message d'erreur a cause d'une histoire de delimiteur et que après y avoir passé plusieur minutes j'etait vert juste a cause de ca ! Voila bonne continuation. 2-high |
|
|
00
|
|
|
#18 |
|
Membre actif
![]() |
salut 2-high
merci pour tes reponses ça m'a aidé quand même, parce que avant que tu reponds j'avais laissé tombé le truc merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com