Foreign key
(внешний ключ) - это механизм, который позволяет связывать данные из двух таблиц в базе данных, где одна таблица ссылается на другую посредством поля, которое является первичным ключом в таблице, на которую она ссылается.
Использование
foreign key
имеет несколько преимуществ. Одно из них - обеспечение целостности данных, то есть предотвращение появления некорректных значений в таблице. Когда вы устанавливаете
foreign key
, вы создаете ограничение, которое не позволит вставить запись в таблицу, если нет соответствующего значения в связанной таблице.
Чтобы создать
foreign key
, вы должны выполнить следующие шаги:
- Создайте таблицу, которая будет ссылаться на другую таблицу:
CREATE TABLE table1 (
id INT PRIMARY KEY,
name VARCHAR(50),
table2_id INT,
FOREIGN KEY (table2_id) REFERENCES table2(id)
);
- Создайте таблицу, на которую будет ссылаться первая таблица:
CREATE TABLE table2 (
id INT PRIMARY KEY,
name VARCHAR(50)
);
- Установите связь между таблицами с помощью ключевого слова
REFERENCES
:
FOREIGN KEY (table2_id) REFERENCES table2(id)
В этом примере, мы создаем таблицу
table1
, которая имеет поле
table2_id
, которое ссылается на поле
id
в таблице
table2
. С помощью ключевого слова
FOREIGN KEY
мы говорим базе данных, что это поле должно быть связано с полем
id
в таблице
table2
.
Также мы можем добавить ограничение
ON DELETE
, чтобы определить, что происходит с записями в таблице, которые связаны с удаленными записями из другой таблицы. Например:
FOREIGN KEY (table2_id) REFERENCES table2(id) ON DELETE CASCADE
В этом примере, мы указываем, что при удалении записи из таблицы
table2
, все связанные записи в таблице
table1
также должны быть удалены
(CASCADE)
.
Таким образом, использование
foreign key
может значительно улучшить целостность данных в вашей базе данных, облегчить ее обслуживание и предотвратить появление ошибок в будущем.