|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 35 ![]() |
Bonjour à tous, voici la question : Deux bases de données ont été créées contenant chacune une table, chacune possèdant 3 triggers (insert, update, delete) de même nature de telle sorte que si l'une des tables est mise à jour, l'autre le fait également, en fait les données sont donc les mêmes dans les deux tables. Seulement si une opération Update (par exemple) est faite sur l'une des deux tables un message d'erreur s'affiche :
"#1442 - Can't update table 'table2' in stored function/trigger because it is already used by statement which invoked this stored function/trigger." Je crois que les triggers correspondant à l'update des deux tables réagissent formant une boucle sans fin. Si c'est le cas y a-t-il un moyen d'y remédier ? Désolé si le message n'est pas trop clair, c'est la première fois que j'écris sur votre forum donc n'hésitez pas à poser des questions Voici les triggers pour une table : Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Tu peux éventuellement tester si la mise à jour n'a pas déjà été faite...
Code :
|
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 35 ![]() |
et bien la commande fonctionne, mais un nouveau message d'erreur apparait lorsque je fais un update, le voici : "Error 1241 (21000) Operand should contain 1 column(s)", la requête était la suivante : Update table1 set name="Kanna" where code = "1"; En tout cas merci de ton aide
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() |
Un trigger n'existe pas en SQL, merci de préciser quel SGBD vous utilisez SVP, que moi ou un autre modérateur puisse déplacer dans le forum approprié
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 35 ![]() |
Ah désolé
|
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 35 ![]() |
Bon je crois avoir trouvé une solution, pour cela il faudrait que le premier trigger qui s'exécute effectue un select sur l'autre table afin de voir si les données sont différentes et si ce n'est pas le cas, ne pas exécuter le trigger, la syntaxe que al1_24 m'a fourni retourne le même message d'erreur soit "Can't update table 'table2' in stored function/trigger because it is already used by statement which invoked this stored function/trigger", donc voilà je cherche une syntaxe de trigger incluant un select
|
|
|
00
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 35 ![]() |
Bien après plusieurs recherches voici un code qui permet donc de créer un trigger sur chacune des deux tables, si l'update est fait sur l'une, il se fera sur l'autre, et vice-versa :
Code :
Voilà, j'espère que le code est assez clair, sinon n'hésitez pas à poser des questions. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com