SQL กฎกติกา FOREIGN KEY

SQL กฎกติกา FOREIGN KEY

FOREIGN KEY ในตารางหนึ่งหน้านี้หนุนตัว PRIMARY KEY ในตารางอื่น

ให้เราใช้ตัวอย่างเพื่อชี้แจง FOREIGN KEY โปรดดูตารางที่อยู่ใต้นี้

ตาราง "Persons":

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

ตาราง "Orders":

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1

โปรดจำได้ว่า คอลัมน์ "Id_P" ใน "Orders" หนุนตัวคอลัมน์ "Id_P" ในตาราง "Persons"

คอลัมน์ "Id_P" ในตาราง "Persons" คือ PRIMARY KEY ของตาราง "Persons"

คอลัมน์ "Id_P" ในตาราง "Orders" คือ FOREIGN KEY ของตาราง "Orders"

จำกัด FOREIGN KEY ใช้เพื่อป้องกันการทำลายการเชื่อมโยงระหว่างตาราง

จำกัด FOREIGN KEY ยังสามารถป้องกันการฝังข้อมูลผิดกฎหมายในคอลัมน์ FOREIGN KEY ได้ เพราะมันต้องเป็นหนึ่งในค่าที่อยู่ในตารางที่มีอ้างอิง

จำกัด FOREIGN KEY ใน CREATE TABLE

SQL ที่อยู่ใต้นี้สร้าง FOREIGN KEY สำหรับคอลัมน์ "Id_P" ของตาราง "Orders" ขณะที่ตาราง "Orders" ถูกสร้าง

MySQL:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
ประกาศต่างประเภท FOREIGN 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 กำหนดสำหรับคอลัมน์ "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 กำหนด

ถ้าต้องการยกเลิก FOREIGN KEY กำหนด ใช้ SQL ด้านล่างนี้:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders