|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 2 ![]() |
Bonjour à tous,
J'ai fait un trigger qui me permet de remplir la table data en fonction de la modification de la table profil_etudiant. Le nom des champs est stocké dans la variable nom_colonne. Le but est que si mon old.nom_colonne est différent de mon new.nom_colonne, il fait les instructions. Mon problème est que je n'arrive pas à lui faire prendre en compte la valeur de la variable nom_colonne. Code :
Comme vous pouvez le voir, j'ai essayé avec CONCAT, mais il ne reconnaît plus le new et old. Il me prend le tout comme une string (CONCAT du old) ou me ressort une erreur (CONCAT du new). J'ai essayé les 2 cela ne fonctionne pas. ça doit être un problème de syntaxe mais là je sèche depuis plusieurs jours dessus Quelqu'un pourrait-il me dire comment faire pour qu'il prenne new.nom_colonne comme new.adresse (par exemple) et non pas new.nom_colonne? J'espère avoir réussi à être clair.... Merci de vos réponses!! |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Développeur C Inscription : août 2004 Messages : 1 460 ![]() |
Salut moi aussi je galère un peu comme toi avec la syntaxe.
J'ai un peu de mal avec une ligne : Code :
SET myNew = CONCAT(new,'.' , nom_colonne) J'ai l'impression que ton test myOld <> myNew es toujours vrai, tu compares 2 chaine de caractères dont la première commence par "old.", c'est sur que la 2e ne commencera jamais par ca. je n'ai pas testé, mais essaie avec @ : Ca peut peut-etre fonctionner. je ne sais pas ce que c'est que @ mais pour moi, quand je ne le met pas j'ai une erreur dans la création de ma procédure stockée. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 2 ![]() |
En fait mon myNew et myOld devrait contenir les valeurs du champs avant et après l'update.
Et là il compare "new.nom_du_champ" et "old.nom_du_champ". Donc ce test retourne effectivement toujours true.... J'ai testé ton exemple, il donne le même résultat. Je suis vraiment coincé là. Merci quand même Fregolo52. J'ai aussi tenté PREPARE et EXECUTE mais rien y fait. Quelqu'un aurait-il encore une idée?? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com