Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 20/03/2006, 17h36   #1
Invité de passage
 
Inscription : mars 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 2
Points : 1
Points : 1
Par défaut mon trigger ne fonctionne pas !

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
japi33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 20h23   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 21h26   #3
Invité de passage
 
Inscription : mars 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 2
Points : 1
Points : 1
merci bcp;
ça marche !
cordialement,
Jacky
japi33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h16.


 
 
 
 
Partenaires

Hébergement Web