Як змінити обмеження


91

SQL як змінити обмеження

Нижче наведено 1 моє обмеження

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

Я хочу додати

ON DELETE CASCADE

до обмеження вище.

Як змінити існуюче обмеження ACTIVEPROG_FKEY1 та додати

ON DELETE CASCADE

до обмеження ACTIVEPROG_FKEY1

Розглянемо ACTIVEPROG_FKEY1 у таблиці ACTIVEPROG

Відповіді:


146

Ви не можете ніколи змінювати обмеження, але можете скинути їх, а потім відтворити.

Подивіться на це

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, так, ми можемо ввімкнути / вимкнути ............... Іноді корисно вимкнути одне або кілька обмежень у таблиці, зробити щось важливе, а потім знову ввімкнути констант (и) ) після закінчення. Найчастіше це робиться для поліпшення продуктивності під час роботи з масовим навантаженням.
andy

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
Це правда, що те, що хоче ОП, неможливо, але чому ви розміщуєте посилання на сайт SQL Server для запитання з позначкою Oracle?
Frank Schmitt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.