Latest web development tutorials

SQL ограничение внешнего ключа

SQL ограничение внешнего ключа

FOREIGN KEY в одной таблице указывает на другую таблицу первичного ключа.

Давайте используем пример, чтобы объяснить внешний ключ. Рассмотрим следующие две таблицы:

"Лица" таблица:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

"Заказы" таблица:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Обратите внимание, что "Заказы" столбец таблицы "p_id" точка столбец "лица" таблица "p_id".

Колонка "Лица" таблица "p_id" является "Лица" таблицы PRIMARY KEY.

колонка "Заказы" таблица "p_id" является "Заказы" таблица FOREIGN KEY.

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

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


SQL ограничение внешнего ключа CREATE TABLE когда

Следующий SQL, когда "Заказы" таблица была создана, чтобы создать ограничение внешнего ключа на колонке "p_id":

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

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

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)


SQL ограничение внешнего ключа ALTER TABLE при

Когда таблица "Заказы" был создан для столбцов создать ограничение внешнего ключа "p_id", пожалуйста, используйте следующий SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

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

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)


Отменить ограничение внешнего ключа

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

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders