ຄຳຖານ FOREIGN KEY SQL

ຄຳຖານ FOREIGN KEY SQL

课程推荐:

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

让我们通过一个例子来解释外键。请看下面两个表:

OrderNo 在 "Persons" 表: LastName FirstName Address
24562 City Adams John Oxford Street
77895 London Bush George Fifth Avenue
44678 New York Carter Thomas Changan Street

Beijing

在 "Orders" 表: Id_O OrderNo
24562 Id_P 44678
77895 2 44678
44678 3 24562
22456 4 24562

1

请注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。

在 "Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。

在 "Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

SQL FOREIGN KEY Constraint on CREATE TABLE

MySQL:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
PRIMARY KEY (Id_P) REFERENCES Persons(Id_P)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

ຖ້າຕ້ອງປະກາດຄວບຄຸມ FOREIGN KEY ຊື່ວິທີວິທະຍາສານກັບການປະກາດ FOREIGN KEY ສອງສາມຫົວໜ້າ, ການໃຊ້ນອກການ SQL ລາວ:

MySQL / SQL Server / Oracle / MS Access:

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

SQL FOREIGN KEY Constraint on ALTER TABLE

ຖ້າຕ້ອງປະກາດ FOREIGN KEY Constraint ສໍາລັບຫົວໜ້າ "Id_P" ໃນການທີ່ "Orders" ມີຢູ່ກ່ອນ, ການໃຊ້ SQL ລາວ:

MySQL / SQL Server / Oracle / MS Access:

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

ຖ້າຕ້ອງປະກາດຄວບຄຸມ FOREIGN KEY ຊື່ວິທີວິທະຍາສານກັບການປະກາດ FOREIGN KEY ສອງສາມຫົວໜ້າ, ການໃຊ້ນອກການ SQL ລາວ:

MySQL / SQL Server / Oracle / MS Access:

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

ຍົກຖອນ FOREIGN KEY Constraint

ສຳຫຼວດການຍົກຖອນ FOREIGN KEY ຄວບຄຸມດ້ວຍ SQL ລາຍລະອຽດລາວ:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders