Как изменить ограничение


91

SQL Как изменить ограничение

Ниже приведено одно из моих ограничений

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode),

Я хочу добавить

ON DELETE CASCADE

к ограничению выше.

Как изменить существующее ограничение ACTIVEPROG_FKEY1 и добавить

ON DELETE CASCADE

ограничить ACTIVEPROG_FKEY1

Учтите, что ACTIVEPROG_FKEY1 находится в таблице ACTIVEPROG

Ответы:


147

Вы никогда не можете изменить ограничения, но можете отбросить их, а затем воссоздать.

Посмотри на это

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

а затем воссоздайте его ON DELETE CASCADEвот так

ALTER TABLE your_table
add CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode)
    ON DELETE CASCADE;

надеюсь, что это поможет


вы можете включать / отключать ограничения.
Флорин Гита

1
@FlorinGhita, да, мы можем включить / отключить ............... Иногда полезно отключить одно или несколько ограничений для таблицы, сделать что-нибудь существенное, а затем снова включить константу (s ) после того, как вы закончите. Чаще всего это делается для повышения производительности во время операции массовой загрузки.
Энди

12

Нет. Мы не можем изменить ограничение, мы можем только отбросить и воссоздать его.

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

Ограничение внешнего ключа

Alter Table Table1 Add Constraint [CONSTRAINTNAME] Foreign Key (Column) References Table2 (Column) On Update Cascade On Delete Cascade

Ограничение первичного ключа

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....)

6
Верно, что то, чего хочет OP, невозможно, но почему вы публикуете ссылку на сайт SQL Server для вопроса с тегом Oracle?
Франк Шмитт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.