Каскадные ограничения — Пример

  • Предложение CASCADE CONSTRAINTS используется вместе с предложением DROP COLUMN.

  • Предложение CASCADE CONSTRAINTS позволяет удалять все ссылочные ограничения целостности, которые ссылаются на первичные и уникальные ключи, определенные в удаляемых столбцах.

  • Предложение CASCADE CONSTRAINTS удаляет также все ограничения, состоящие из нескольких столбцов и определенные в удаляемых столбцах.

Эта инструкция служит примером использования предложения CASCADE CONSTRAINTS.

Предположим, что таблица TEST1 создается следующим образом:

     CREATE TABLE test1 ( col1_pk NUMBER PRIMARY KEY, col2_fk NUMBER, col1 NUMBER, col2 NUMBER, CONSTRAINT fk_constraint FOREIGN KEY (col2_fk) REFERENCES test1, CONSTRAINT ck1 CHECK (col1_pk > 0 and col1 > 0),

CONSTRAINT ck2 CHECK (col2_fk > 0));

Ошибка возвращается для следующих инструкций:

  • ALTER TABLE test1 DROP (col1_pk);col1_pk является родительским ключом.
  • ALTER TABLE test1 DROP (col1); – на col1 ссылается ограничение ck1, состоящее из нескольких столбцов.

Пример:

2-23-2700194

При выполнении следующей инструкции удаляется столбец EMPLOYEE_ID, ограничение первичного ключа и все ограничения внешних ключей, ссылающиеся на ограничение первичного ключа для таблицы EMP2:

ALTER TABLE emp2 DROP COLUMN employee_id CASCADE CONSTRAINTS;

Если все столбцы, на которые ссылаются ограничения, определенные в удаляемых столбцах, также удаляются, тогда предложение CASCADE CONSTRAINTS не требуется. Например, предположив, что никакие другие ограничения целостности из других таблиц не ссылаются на столбец COL1_PK, допустимо передать следующую инструкцию без предложения CASCADE CONSTRAINTS для таблицы TEST1, созданной на предыдущей странице:

ALTER TABLE test1 DROP (col1_pk, col2_fk, col1);

Далее: Сведения о последовательностях

Похожие записи