คีย์เวิร์ด SQL FOREIGN KEY
กุญแจต่างประเทศ
ข้อFOREIGN KEY
จำกัดคือคีย์ที่ใช้เชื่อมโยงสองตารางเข้าด้วยกัน
คีย์ต่างประเทศคือฟิลด์ (หรือคอลเล็กชันของฟิลด์) ในตารางหนึ่งที่อ้างถึงคีย์หลักในอีกตารางหนึ่ง
SQL FOREIGN KEY บน CREATE TABLE
SQL ต่อไปนี้สร้าง FOREIGN KEY บนคอลัมน์ "PersonID" เมื่อสร้างตาราง "Orders":
MySQL:
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
การเข้าถึงเซิร์ฟเวอร์ SQL / Oracle / MS:
CREATE TABLE Orders
(
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
ในการอนุญาตการตั้งชื่อข้อจำกัดของ FOREIGN KEY และสำหรับการกำหนดข้อจำกัดของ FOREIGN KEY ในหลายคอลัมน์ ให้ใช้ไวยากรณ์ SQL ต่อไปนี้:
การเข้าถึง MySQL / SQL Server / Oracle / MS:
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)
);
SQL FOREIGN KEY บน ALTER TABLE
ในการสร้างข้อจำกัดของ FOREIGN KEY ในคอลัมน์ "PersonID" เมื่อสร้างตาราง "Orders" แล้ว ให้ใช้ SQL ต่อไปนี้:
การเข้าถึง MySQL / SQL Server / Oracle / MS:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
ในการอนุญาตการตั้งชื่อข้อจำกัดของ FOREIGN KEY และสำหรับการกำหนดข้อจำกัดของ FOREIGN KEY ในหลายคอลัมน์ ให้ใช้ไวยากรณ์ SQL ต่อไปนี้:
การเข้าถึง MySQL / SQL Server / Oracle / MS:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
วางข้อ จำกัด ที่สำคัญต่างประเทศ
หากต้องการยกเลิกข้อจำกัดของ FOREIGN KEY ให้ใช้ SQL ต่อไปนี้:
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
การเข้าถึงเซิร์ฟเวอร์ SQL / Oracle / MS:
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;