|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Bonjour
J'ai une table qui va contenir un entier. Cette entier est en faite un sum d'une autre table. Je ne pense pas pouvoir faire une clé étranger d'un resulstat d'un sum. Quoi que en réfléchissant via une vue est ce possible ?. Bref, je voudrais savoir s'il était possible d'interdire l'edition d'un champs dont le resultat represente un sum d'une autre table. Mysql 5.x
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#2 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Salut,
Je ne vois pas vraiment comment interdire l'accès "en écriture" à une colonne. Ca m'étonnerait fortement que ça soit faisable avec une clé étrangère ! A quoi penses-tu quand tu parles de faire une vue ? Il y aurait peut-être la solution du trigger qui après chaque update de la table qui contient cette somme vérifie si la somme est correcte, sinon remet la bonne valeur (et encore, si je me rappelle bien, on ne peut pas modifier les tables concernées par le trigger). En fait, pourquoi veux-tu absolument interdire une modification ? Y a-t-il un risque que via ton application une modification ait lieu ? |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Pour la vue. Dans la vue il y aura un champ qui aura pour resultat le sum d'une autre table. ce champs je le déclare comme clé etrangere sur la table finale comme ça il ne peut modifier cette valeur.
Pourquoi? En faite c'est le stock des produits mais ce stock peut être issu de plusieurs paramètres issu de d'autre table. Si c'estqui fait que dans l'ensemble ça forme le stock total. Si les autres paramètres n'existe pas il peut modifier le champs dans le cas contraire il ne peut pas ça aura la valeur issu des autres paramètre. Le trigger ne peut pas modifier la valeur de la table concerné. En gros : un trigger sur la table A peut seulement modifier les valeurs de la table B mais de la table A même si c'est befor update ?
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#4 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Je ne vois toujours pas comment tu pourrais faire ça avec une vue et une clé étrangère.
La meilleure façon est quand même de vérifier les critères dans ton application et de désactiver le champ "stock total" s'il le faut. Pour la solution du trigger, il n'est en fait pas nécessaire de modifier la table. Tu peux modifier juste la nouvelle ligne : Code :
|
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Merci beaucoup je vais étudier cela de très prèt. Je contrôlerais depuis l'application mais je veux contrer celui qui fourera ça truffe dans les enregistrements et que ça fausse les resultats. Que que je m'en fou il est responsable de se qu'il fait.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com