Foreign Keys

В этом учебном материале вы узнаете, как использовать в Oracle/PLSQL Foreign Keys (внешний ключи) с синтаксисом и примерами.

Что такое Foreign Keys в Oracle?

Foreign Keys является способом обеспечить целостность данных в вашей базе данных Oracle. Внешний ключ означает, что значения в одной таблице должны также появиться в другой таблице.
Ссылающаяся таблица называется parent table (родительской таблицей), а таблица с foreign key (внешним ключом) называется child table (дочерней таблицей). Foreign key в дочерней таблице, как правило, ссылаются на primary key (первичный ключ) в родительской таблице.
Foreign key может быть определен либо в операторе CREATE TABLE или в операторе ALTER TABLE.

Использование CREATE TABLE

Синтаксис

Синтаксис для создания внешнего ключа с помощью оператора CREATE TABLE:

CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
...

CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n)
);

Пример

В этом примере мы создали primary key таблицы supplier под названием supplier_pk. Она состоит только из одного поля - supplier_id. Затем мы создали foreign key с именем fk_supplier в таблице products, который ссылается на таблицу supplier на основании поля supplier_id.

Мы могли бы также создать foreign key с более чем одним полем, как в примере ниже:

В этом примере, наш foreign key называется fk_foreign_comp ссылается на таблицу supplier на основании двух полей - supplier_id и supplier_name.

Использование ALTER TABLE

Синтаксис

Синтаксис для создания внешнего ключа в операторе ALTER TABLE:

ALTER TABLE table_name
ADD CONSTRAINT constraint_name
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n);

Пример

В этом примере мы создали foreign key с именем fk_supplier, который ссылается на таблицу supplier, на основании поля supplier_id.
Еще один пример создания foreign key с более чем одним полем в примере ниже: