Команда FOREIGN KEY
Команда FOREIGN KEY используется для задания связи
между таблицами. Внешний ключ указывает,
что значения столбца в дочерней таблице
должны существовать в столбце с
PRIMARY KEY
или UNIQUE
родительской таблицы.
Синтаксис
CREATE TABLE table_name (
column_name data_type,
FOREIGN KEY (column_name)
REFERENCES parent_table(parent_column)
)
Таблицы для примеров
| id | name | |
|---|---|---|
| 1 | ivan@example.com | Ivan |
| 2 | olga@example.com | Olga |
| 3 | sergey@example.com | Sergey |
Пример
Давайте создадим таблицу orders со связью с таблицей users по внешнему ключу user_id:
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
amount INT,
FOREIGN KEY (user_id)
REFERENCES users(id)
)
Результат выполнения кода:
| id | user_id | amount |
|---|---|---|
| 1 | 1 | 1500 |
| 2 | 2 | 2300 |
| 3 | 1 | 800 |
Пример
Давайте добавим внешний ключ в уже существующую таблицу orders с помощью ALTER TABLE:
ALTER TABLE orders
ADD FOREIGN KEY (user_id)
REFERENCES users(id)
Пример
Давайте создадим таблицу profiles со связью по уникальному полю email:
CREATE TABLE profiles (
id INT PRIMARY KEY,
email VARCHAR(255),
city VARCHAR(100),
FOREIGN KEY (email)
REFERENCES users(email)
)
Результат выполнения кода:
| id | city | |
|---|---|---|
| 1 | ivan@example.com | Moscow |
| 2 | olga@example.com | Saint Petersburg |
| 3 | sergey@example.com | Kazan |
Смотрите также
-
команду
PRIMARY KEY,
которая задаёт ключ родительской таблицы -
команду
UNIQUE,
которая обеспечивает уникальность значений -
команду
CREATE TABLE,
которая создаёт таблицу со связями -
команду
ALTER TABLE,
которая добавляет ограничение связи -
команду
JOIN,
которая соединяет таблицы по связанным полям