SQL กฎกติกา FOREIGN KEY
- หน้าก่อนหน้า SQL Primary Key
- หน้าต่อไป SQL Check
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
- หน้าก่อนหน้า SQL Primary Key
- หน้าต่อไป SQL Check