Як зняти обмеження в Oracle
У полі all_constraints ви можете отримати доступ до всіх обмежень. Звичайний запит створить кілька опцій для зняття обмежень.
Кроки
1
Створіть такий запит:- SQL> виберіть опцію зміни таблиці `alter table` || owner || `.` || Table_name || `drop constraint` || constraint_name || `-` from all_constraints where table_name = `GAMES`-
- Змініть таблицю PRODUSER.GAMES drop constraint SYS_C006443;
- Змініть таблицю PRODUSER.GAMES drop constraint PK_GAMES;
- SQL> виберіть опцію зміни таблиці `alter table` || owner || `.` || Table_name || `drop constraint` || constraint_name || `-` from all_constraints where table_name = `GAMES`-
Тимчасово вимкніть, а потім знову ввімкніть обмеження
1
Відредагуйте таблицю: іноді потрібно просто тимчасово відключити обмеження, а потім знову включити їх. Можна створити запит, який створить необхідний SQL для цього.- SQL> Оберіть опцію зміни таблиці `alter table` || owner || `.` || Table_name || `disable constraint` || constraint_name || `-` from all_constraints where table_name = `GAMES`-
- Змініть таблицю SITE.GAMES disable constraint SYS_C006443;
- Змініть таблицю SITE.GAMES disable constraint PK_GAMES;
- SQL> `alter table` || owner || `.` || Table_name || `enable constraint` || constraint_name || `-` from all_constraints where table_name = `GAMES`-
- Змініть таблицю SITE.GAMES enable constraint SYS_C006443;
- Змініть таблицю SITE.GAMES enable constraint PK_GAMES;
- SQL> Оберіть опцію зміни таблиці `alter table` || owner || `.` || Table_name || `disable constraint` || constraint_name || `-` from all_constraints where table_name = `GAMES`-
Поради
- Іноді, коли вам потрібно увімкнути обмеження, ця опція може бути недоступна. Ви можете примусово включити обмеження, використавши ключове слово «Novalidate», як показано в нашому прикладі.
- SQL> Оберіть опцію зміни таблиці `alter table` || owner || `.` || Table_name || `enable novalidate constraint` || constraint_name || `-` from all_constraints where table_name = `GAMES`-
- Виберіть опцію зміни таблиці SITE.GAMES enable novalidate constraint SYS_C006443;
- Виберіть опцію зміни таблиці SITE.GAMES enable novalidate constraint PK_GAMES;