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

У полі all_constraints ви можете отримати доступ до всіх обмежень. Звичайний запит створить кілька опцій для зняття обмежень.

Кроки

  1. 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;

Тимчасово вимкніть, а потім знову ввімкніть обмеження




  1. 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;

Поради

  • Іноді, коли вам потрібно увімкнути обмеження, ця опція може бути недоступна. Ви можете примусово включити обмеження, використавши ключове слово «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;