Учебник по MySQL

ГЛАВНАЯ СТРАНИЦА MySQL Введение в MySQL СУРБД MySQL

MySQL SQL

MySQL SQL ВЫБРАТЬ MySQL MySQL ГДЕ MySQL И, ИЛИ, НЕ MySQL ЗАКАЗАТЬ ПО MySQL ВСТАВИТЬ В Значения MySQL NULL ОБНОВЛЕНИЕ MySQL MySQL УДАЛИТЬ ПРЕДЕЛ MySQL MySQL МИН и МАКС MySQL COUNT, СРЕДНЯЯ, СУММА MySQL НРАВИТСЯ Подстановочные знаки MySQL MySQL IN MySQL МЕЖДУ Псевдонимы MySQL MySQL присоединяется ВНУТРЕННЕЕ СОЕДИНЕНИЕ MySQL ЛЕВОЕ СОЕДИНЕНИЕ MySQL MySQL ПРАВОЕ СОЕДИНЕНИЕ ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ MySQL Самостоятельное присоединение к MySQL СОЕДИНЕНИЕ MySQL MySQL СГРУППИРОВАТЬ ПО MySQL ИМЕЕТ MySQL СУЩЕСТВУЕТ MySQL ЛЮБОЙ, ВСЕ MySQL ВСТАВИТЬ ВЫБРАТЬ СЛУЧАЙ MySQL Нулевые функции MySQL Комментарии MySQL Операторы MySQL

База данных MySQL

MySQL Создать БД Удаление базы данных MySQL MySQL Создать таблицу Таблица удаления MySQL Таблица изменений MySQL Ограничения MySQL MySQL не нулевой Уникальный MySQL Первичный ключ MySQL Внешний ключ MySQL Проверка MySQL MySQL по умолчанию Индекс создания MySQL Автоматическое увеличение MySQL Даты MySQL Представления MySQL

Ссылки на MySQL

Типы данных MySQL Функции MySQL

Примеры MySQL

Примеры MySQL Викторина MySQL MySQL-упражнения

Ограничение ВНЕШНЕГО КЛЮЧА MySQL


Ограничение ВНЕШНЕГО КЛЮЧА MySQL

Ограничение FOREIGN KEYиспользуется для предотвращения действий, которые могут разрушить связи между таблицами.

A FOREIGN KEY— это поле (или набор полей) в одной таблице, которое ссылается на поле PRIMARY KEYв другой таблице.

Таблица с внешним ключом называется дочерней таблицей, а таблица с первичным ключом называется ссылочной или родительской таблицей.

Посмотрите на следующие две таблицы:

Стол лиц

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

Таблица заказов

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Обратите внимание, что столбец «PersonID» в таблице «Orders» указывает на столбец «PersonID» в таблице «Persons».

Столбец «PersonID» в таблице «Persons» совпадает с таблицей PRIMARY KEY«Persons».

Столбец «PersonID» в таблице «Заказы» находится FOREIGN KEYв таблице «Заказы».

Ограничение FOREIGN KEYпредотвращает вставку недопустимых данных в столбец внешнего ключа, поскольку это должно быть одно из значений, содержащихся в родительской таблице.



ВНЕШНИЙ КЛЮЧ на CREATE TABLE

Следующий SQL создает FOREIGN KEYстолбец «PersonID» при создании таблицы «Заказы»:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

Чтобы разрешить именование FOREIGN KEYограничения и определить FOREIGN KEYограничение для нескольких столбцов, используйте следующий синтаксис SQL:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

ВНЕШНИЙ КЛЮЧ на ALTER TABLE

Чтобы создать FOREIGN KEYограничение для столбца «PersonID», когда таблица «Заказы» уже создана, используйте следующий SQL:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

Чтобы разрешить именование FOREIGN KEYограничения и определить FOREIGN KEYограничение для нескольких столбцов, используйте следующий синтаксис SQL:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

УДАЛИТЬ ВНЕШНИЙ КЛЮЧ Ограничение

Чтобы удалить FOREIGN KEYограничение, используйте следующий SQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;