|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour,
J'utilise pour la première fois les triggers etca ne tourne pas complètement comme je le voudrais. Ce que je souhaite faire : Dans la base test j'ai la table amis contenant les champs id, nom, prenom, status Dans la base test2 j'ai aussi une table amis contenant les champs nom, prenom j'ai besoin que quand une insertion à lieu dans la table test.amis elle soit aussitôt insérée dans la table test2.amis. Pour ne prendre que les dernières lignes je selectionne que celles dont status = 0 Insertion dans la table test2.amis Update de status à 1 dans test.amis Seul fonctionne l'insertion dans test2.amis mais pas l'update et l'erreur suivante survient : ERROR 1442 (HY000): Can't update table 'amis' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. Voici le trigger : Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
la pseudo-table new te permet de faire ça + simplement et + efficacement :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
Ok pour la pseudo table new mais dans ce cas comment je les insères dans ma table amis de la base test2 ?
Car là l'insert se passe bien mais pas le update. |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Citation:
Citation:
Ensuite, tu crées un trigger AFTER UPDATE qui effectue un REPLACE INTO test2.amis identique à l'INSERT ci-dessus. Tu pourras ensuite prévoir un trigger sur le DELETE, utilisant lui aussi soit old.ID, soit old.nom et old.prenom. |
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
Bon, ce matin j'étais ailleurs, car ta solution de pseudo-table new fonctionne à merveille, je regarde maintenant pour l'update et le delete.
Merci à toi et bonne année |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com