Теория для лабораторной работы №1 - "Изучение команд DDL", страница 14

 mgr                     NUMBER(4),

       hiredate                DATE,

       sal                       NUMBER(7,2),

       comm                   NUMBER(7,2),

       deptno                 CONSTRAINT fk_deptno REFERENCES dept(deptno) )

Ограничение FK_DEPTNO показывает, что все служащие в таблице EMP работают в отделах, указанных в таблице DEPT. Однако, служащие могут и не иметь номера своего отдела в таблице DEPT. В этом примере не используется слово FOREIGN KEY для определения внешнего ключа, т.к. ссылочное ограничение объявлено в клаузе объявления ограничения на столбец DEPTNO, который автоматически объявляется внешним ключом.

Эта же задача решается также с использованием слова FOREIGN KEY:

CREATE TABLE emp   (empno NUMBER(4),

                                            ename VARCHAR2(10),

                                            job VARCHAR2(9),   

                                            mgr NUMBER(4),   

                                           hiredate DATE,

                                           sal NUMBER(7,2),

                                           comm NUMBER(7,2),

                                          deptno  NUMBER(2) ,    CONSTRAINT fk_deptno       FOREIGN KEY                               (deptno)    REFERENCES dept(deptno) )

Поддержка ссылочного ограничения с опцией ON DELETE CASCADE

Если эта опция включена, то Oracle при удалении строк из родительской таблицы будет автоматически удалять строки из дочерней.

Пример.

Этот пример создаёт таблицу EMP, определяет и разрешает ограничение ссылочности FK_DEPTNO, и использует опцию ON DELETE CASCADE:

CREATE TABLE emp

      (empno                 NUMBER(4),

      ename                   VARCHAR2(10),

      job                        VARCHAR2(9),

      mgr                      NUMBER(4),

      hiredate                 DATE,