Внешний ключ используется для связывания двух таблиц между собой. Иногда это называется ссылочный ключ.
Внешний ключ – это колонка, или комбинация колонок, значения которых соответствуют первичному ключу (primary key) в другой таблице.
Другими словами, первичный ключ одной таблицы совпадает с внешним ключом другой.
Если таблица имеет первичный ключ, который привязан к какому-либо полю, то мы не можем иметь де записи с одинаковыми занчениями данного поля.
Пример:
Предположим, что у нас есть две таблицы:
- developers
CREATE TABLE developers(
ID INT NOT NULL,
NAME VARCHAR (100) NOT NULL,
SALARY INT NOT NULL,
PRIMARY KEY (ID)
);
- specialties
CREATE TABLE specialties(
ID INT NOT NULL,
SPECIALTY_NAME VARCHAR (100) NOT NULL,
DEVELOPER_ID INT REFERENCES developers (ID) NOT NULL,
PRIMARY KEY (ID)
);
Если таблица specialties уже существует и внешний ключ не установлен, то для создания связи между двумя этими таблицами в RDBMS MySQL, нам необходимо использовать следующую команду:
ALTER TABLE specialties
ADD FOREIGN KEY (developers_ID) REFERENCES developers (ID);
Для того, чтобы удалить внешний ключ в той же RDBMS, мы должны использовать команду, указанную ниже:
ALTER TABLE developers
DROP FOREIGN KEY;
На этом мы заканчиваем изучение констрейнта FOREIGN KEY.