|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Bonjour,
Table A pkA clef primaire Table B fkBA clef etrangere pointe sur pkA Les 2 tables sont remplies avant de créer les contraintes. Existe -t-il une option qui permette la retroactivité de la fkBA car par défault la contrainte ne s'applique que pour les nouvelles valeurs ( inserées ou updatées ) D'avance merci. |
|
|
00
|
|
|
#2 |
![]() ![]() |
Si mes souvenirs sont bons un "ALTER TABLE ADD CONSTRAINT FOREIGN KEY ..." ne va s'appliquer qu'aux nouvelles modifications de la table, donc cela devrait convenir.
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 | |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Citation:
|
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Oops - désolé, j'ai mal lu la question.
Non, je ne pense pas qu'il y ai d'option qui permette de vérifier une contrainte de type FK après coup. On peut évidemment écrire une requête qui fait le check... Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#5 | |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Citation:
ou autrement demandé, n'y a t-il pas de risque de delete en cascade sur sybase 12.5 ? |
|
|
|
00
|
|
|
#6 |
![]() ![]() |
Sybase n'a pas de delete cascade - si le delete invalide la FK le delete est en principe inhibé.
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#7 | |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Quelque chose du genre devrait marcher:
Code :
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
En fait j'ai de tres grosses tables filles (Table B fkBA clef etrangere pointe sur pkA)
et peu de suppressions dans ma table mere (Table A pkA clef primaire) Je vais tester les suppressions une à une via un curseur sur les enregistrement de A que je sais devoir effacer si c'est possible. Cependant J'aimerais dans ces cas (pour mes log) filtrer les messages d'erreurs sur les violations de contraintes et signifier grace à @@error!=0 que la ligne n'a pas été supprimée. En gros, y a-til un moyen d'éviter la sortie de : Server Message: Number 547, Severity 16 Server 'mon_serveur', Line 1: Dependent foreign key constraint violation in a referential integrity constraint. dbname = 'ma_base', table name = 'ma_table, constraint name = 'ma_FK'. Server Message: Number 3621, Severity 10 Server 'mon_serveur', Line 1: Command has been aborted. Je n'ai rien trouvé de probant avec sp_altermessage et sp_bindmessage ... |
|
|
00
|
|
|
#10 | |
![]() ![]() |
Citation:
Par contre c'est évidemment possible dans le client si celui-ci permet la customisation du "error handler" (p.ex. client perl utilisant DBD::Sybase). Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Merci.
Je clos |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com