2010-12-07 73 views
9

Existe-t-il un moyen de modifier une règle de suppression FK de table dans Oracle mieux que de la supprimer, puis de l'ajouter à nouveau?Modifier une règle de suppression FK dans Oracle sans la supprimer et la recréer?

J'utilise actuellement:

alter table A 
drop constraint my_fk; 

alter table A 
add constraint my_fk 
foreign key (id) 
references B(id) 
ON DELETE SET NULL; 

Comme vous pouvez le voir, j'ai déjà une contrainte FK mais il avait aucune règle de suppression sur elle. Je veux juste ajouter une règle ON DELETE SET NULL, et c'est ce que j'ai trouvé jusqu'ici, mais je pense que ça devrait être plus simple.

Répondre

7

Aucun autre moyen, sauf supprimer et recréer une contrainte. Oracle a la syntaxe ALTER TABLE x MODIFY CONSTRAINT, mais il ne peut être utilisé que pour changer l'état de la contrainte.

http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_3001.htm

+0

Fine, je vais le laisser comme ça alors. Merci ! – Greg

+0

Pourquoi une telle préoccupation de le laisser tomber et de le recréer? –

+0

@AdamMusch (années plus tard) Je suppose que je voulais que le code soit SEC et éviter les erreurs possibles (comme oublier de rajouter une contrainte introduite plus tard) – Greg