2010-12-07 6 views
9

Czy istnieje sposób, aby zmienić regułę usuwania FK tabeli w Oracle lepiej niż upuszczenie, a następnie dodanie go ponownie?Zmienianie reguły usuwania FK w Oracle bez upuszczania i ponownego tworzenia?

obecnie używam:

alter table A 
drop constraint my_fk; 

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

Jak widać, mam już ograniczenie FK ale nie miał na nim regułę usuwania. Po prostu chcę dodać regułę ON DELETE SET NULL i do tego doszedłem, ale czuję, że powinna być prostsza.

Odpowiedz

7

Nie ma innego sposobu, z wyjątkiem upuszczania i ponownego tworzenia więzów. Oracle ma składnię ALTER TABLE x MODIFY CONSTRAINT, ale można go używać tylko do zmiany stanu wiązania.

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

+0

Dobrze, zostawię to w ten sposób. Dzięki ! – Greg

+0

Skąd taka obawa przed upuszczeniem go i odtworzeniem? –

+0

@AdamMusch (lata później) Przypuszczam, że chciałem, aby kod był SUCHY i uniknąć możliwych błędów (takich jak zapomnienie o ponownym dodaniu ograniczenia wprowadzonego później) – Greg

Powiązane problemy