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) )
Если эта опция включена, то Oracle при удалении строк из родительской таблицы будет автоматически удалять строки из дочерней.
Пример.
Этот пример создаёт таблицу EMP, определяет и разрешает ограничение ссылочности FK_DEPTNO, и использует опцию ON DELETE CASCADE:
CREATE TABLE emp
(empno NUMBER(4),
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.