|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité régulier
![]() Inscription : février 2010 Messages : 39 ![]() |
Bonjour à tous,
j'ai deux tables table articles et table mouvements_article,je voudrais mettre à jour la quantité dans la table articles par un trigger sur la table mouvements_articles est je n'arrive pas ? Voila le code de la table articles : Code :
Code :
Code :
Code :
pour chaque transaction sur la table mouvements_articles lors d'une requete d'UPDATE / INSERT et aussi DELETE. Merci d'avance pour l'aide sur le sujet |
||||||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 505 ![]() |
quelques remarques:
Le fait que le trigger se déclenche avant l'action (BEFORE INSERT,UPDATE...) parait suspect. Pour ce genre de traitement, ça devrait plutôt être AFTER à mon avis. La syntaxe n'est pas valide pour transférer le résultat d'une requête dans une variable. Voir la doc du langage plpgsql pour la bonne syntaxe, avec la clause INTO. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2010 Messages : 39 ![]() |
Bonjour,
Merci pour votre repense. après modification du trigger avec AFTER ça marche nickel pour les transactions INSERT, UPDATE mais ça marche pas pour les transactions DELETE. Pourrez-vous m'aider SVP ? |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : octobre 2008 Messages : 1 505 ![]() |
Il faudrait reposter le code de la fonction et peut-être décrire un peu ce que tu entends par "ça ne marche pas".
|
|
|
00
|
|
|
#5 | ||||
|
Invité régulier
![]() Inscription : février 2010 Messages : 39 ![]() |
Voila le code de la fonction trigger :
Code :
Code :
le pb c'est que le champ quantite_stock de la table articles ne se met pas à jour apres une transaction DELETE sur la tables mouvements_articles. je voudrais si je supprime une ligne de la table mouvements_articles le trigger de cette table doit mettre à jour le champ quantite_stock de la table articles. OK pour transaction SELECT,UPDATE, mais pas pour le DELETE, en faite après suppression de toutes les lignes pour un articles dans la table mouvements_articles, je regarde coté table articles je trouve que la quantite_stock reste la même pourtant dans la table mouvements_articles pas de ligne pour l'article en question. MERCI Bien
|
||||
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : octobre 2008 Messages : 1 505 ![]() |
Dans le cas du DELETE, la requête
Code :
SELECT id_article FROM mouvements_articles WHERE id_mouvement = OLD.id_mouvement L'information cherchée est dans OLD.id_article, il ne faut pas faire de requête pour la trouver. Accessoirement il en est de même pour UPDATE ou INSERT, il suffit de prendre NEW.id_article, la requête est inutile. |
|
|
10
|
|
|
#7 |
|
Invité régulier
![]() Inscription : février 2010 Messages : 39 ![]() |
Merci !
![]() ça marche. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com