Руководство по SQL. Констрейнт FOREIGN_KEY.

Внешний ключ используется для связывания двух таблиц между собой. Иногда это называется ссылочный ключ.

Внешний ключ – это колонка, или комбинация колонок, значения которых соответствуют первичному ключу (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.