|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 2 ![]() |
Bonjour,
apres avoir lu votre article publié le 03/11/05, je me lance dans l'utilisation des triggers; voici mon problème : apres avoir saisi des donnees dans un formulaire (PHP), en cliquant sur un bouton, je mets a jour une ligne dans une base de nnées : UPDATE cal2006 SET num1=10, num2=20, num3=30, num4=40, txt1='pas de commentaire' WHERE id=5 j'ai creé un trigger pour mettre a jour une colonne de ma table: CREATE TRIGGER `cal2006_after_upd_tr` AFTER UPDATE ON `cal2006` FOR EACH ROW BEGIN UPDATE cal2006 SET cal1=new.num1+new.num2+new.num3+new.num4); END; depuis que j'ai creer le trigger ma requete UPDATE ne fonctionne plus; j'ai le message d'erreur suivant : Can't update table 'cal2006' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. pouvez-vous m'aider ? merci, cordialement, J. PINEAU |
|
|
00
|
|
|
#2 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Bonjour,
Suite à ton mail j'ai voulu te répondre mais apparemment ton serveur de messagerie a considéré mon courrier comme un spam Je te remets la réponse ici : Le message d'erreur est explicite : dans un trigger concernant une table donnée, il n'est pas possible de faire un UPDATE sur la même table. Si tu cherches à mettre à jour séparément la colonne cal1 de chaque ligne concernée par l'UPDATE d'origine, il ne faut pas exécuter un nouvel UPDATE mais simplement faire un SET new.cal1 = new.num1+new.num2+new.num3+new.num4 (comme expliqué dans le tutoriel). Dans le cas contraire, il faudrait déplacer la colonne cal1 dans une autre table afin qu'elle puisse être atteinte par le trigger.
__________________
Pensez au bouton
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 2 ![]() |
merci bcp;
ça marche ! cordialement, Jacky |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com