|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : août 2004 Messages : 61 ![]() |
Bonjour,
Je souhaite, lors d'une insertion ou d'un update d'un tuple, vérifier la valeur d'un attribut et en fonction du résultat mettre à jour toutes les valeur de cet attribut pour le reste de la table : Ex: si AttA = 1 et AttB = toto alors remplacer tous les AttA par la valeur 0 pour les autres tuples dont AttB=toto. Il semble que le fait de faire un update d'une table dans un trigger portant sur la même table ne soit pas possible (Too many concurent exeception for the same request) voici mon code : Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Vous etes dans un trigger et vous updater la même table.... Le trigger est relancée, il va lui aussi faire un update de la même table qui va reresoliciter le trigger etc....
Ca boucle.... Si vous devez changer les valeurs de l'enregistrement en cours dans un trigger affectez simplement les bonnes valeurs aux variables d'environnements préfixées par NEW. Si vous devez mettre à jour des valeurs des autres enregistrements, celà est délicat dans un trigger car il va se relancé (c'est ce qui vous arrive). Donc soit en debut de trigger vous testez par un moyen ou un autre qu''il faut qu'il sorte du trigger sans updater soit vous n'utilisez pas un trigger ou vous changez votre schéma de données pour éviter ce genre de désagrément... |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2004 Messages : 61 ![]() |
Merci du coup de main. Je vais effectivement modifier ma structure
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com