|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2009 Messages : 7 ![]() |
Bonjour,
J'ai une table "fichier" dans ma bdd ( mysql innoDB ) qui me permet d'identifier un fichier sur le serveur. Dans d'autres tables, je crée une clef étrangère afin de pouvoir référencer ce fichier ( 1 seul fichier pour plusieurs utilisations ) Grâce au contraintes l'effacement du fichier n'est pas possible car une clause ON DELETE RESTRICT l'empèche. Je souhaite tout de même pouvoir exécuter une requête qui me permet d'effacer les lignes de ma table fichier qui ne sont pas utilisées ( donc qui n'ont pas d'enfant ) Je souhaite faire ça proprement, et non faire un delete qui génere une erreur à cause de la contrainte. Donc en résumé, comment savoir si la clef de l'enregistrement est utilisé comme clef étrangère ? Merci |
|
|
00
|
|
|
#2 |
![]() ![]() |
Sauf erreur de ma part, ON DELETE RESTRICT ne déclenchera une erreur justement que si la valeur supprimée est référencée dans une clé étrangère. Autrement dit, si plus aucune clé étrangère ne référence le fichier X, tu devrais simplement pouvoir supprimer le fichier X, même avec la contrainte ON DELETE RESTRICT.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
Copyright © 2000-2012 - www.developpez.com