Оператор SQL FOREIGN KEY


Оператор SQL FOREIGN KEY (Внешний ключ) служит для указания в одной таблице на Первичный ключ (оператор SQL PRIMARY KEY) в другой.

Оператор SQL FOREIGN KEY имеет следующий синтаксис:

Для MySQL:

CREATE TABLE table_1 (
ID_1 int NOT NULL
ID_2 int
PRIMARY KEY (ID_1)
FOREIGN KEY (ID_2) REFERENCES table_2(ID_2)
)

Для MS SQL Server, Oracle, MS Access:

CREATE TABLE table_1 (
ID_1 int NOT NULL PRIMARY KEY
ID_2 int FOREIGN KEY REFERENCES table_2(ID_2)
)

Примеры оператора SQL FOREIGN KEY. Имеются две таблицы:

Authors — содержит в себе информацию об авторах книг:

AuthorID AuthorName
1 Bruce Eckel
2 Robert Lafore
3 Andrew Tanenbaum

Books — содержит в себе информацию о названии книг:

BookID BookName
3 Modern Operating System
2 Object-Oriented Programming in C++
1 Thinking in Java
3 Computer Architecture

В таблице Books поле BookID являются Внешним ключом и ссылаются на таблицу Authors. Для организации таблиц с подобной структурой используется следующий код (для MS SQL Server) с использованием оператора SQL FOREIGN KEY:

CREATE TABLE Authors (
AuthorID int NOT NULL PRIMARY KEY,
AuthorName varchar(50)
)

CREATE TABLE Books (
BookID int FOREIGN KEY REFERENCES Authors(AuthorID),
BookName varchar(100)
)