Latest web development tutorials

SQL คีย์ต่างประเทศ จำกัด

SQL คีย์ต่างประเทศ จำกัด

คีย์ต่างประเทศในหนึ่งจุดตารางตารางหลักกุญแจอีกดอกหนึ่ง

ลองใช้ตัวอย่างเพื่ออธิบายความสำคัญต่างประเทศ พิจารณาต่อไปนี้สองตาราง:

ตารางคน "":

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" คือ "คน" คีย์ตารางหลัก

"คำสั่งซื้อ" ตารางคอลัมน์ "P_Id" คือ "คำสั่งซื้อ" ตารางคีย์ต่างประเทศ

ต่างประเทศข้อ จำกัด ที่สำคัญคือใช้ในการป้องกันไม่ให้เกิดความเสียหายต่อความสัมพันธ์ระหว่างพฤติกรรมของตาราง

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


SQL ต่างประเทศ จำกัด KEY สร้างตารางเมื่อ

ต่อไปนี้ SQL เมื่อ "สั่งซื้อ" ตารางถูกสร้างขึ้นเพื่อสร้างข้อ จำกัด KEY ต่างประเทศในคอลัมน์ "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 / ออราเคิล / 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 / ออราเคิล / MS เข้าถึง:

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 ต่างประเทศ จำกัด KEY เปลี่ยนแปลงตารางเมื่อ

เมื่อ "สั่งซื้อ" ตารางได้ถูกสร้างขึ้นสำหรับคอลัมน์สร้างต่างประเทศ จำกัด KEY "P_Id" กรุณาใช้ SQL ต่อไปนี้:

MySQL / SQL Server / ออราเคิล / MS เข้าถึง:

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

เพื่อชื่อข้อ จำกัด สำคัญต่างประเทศและกำหนดส่วนใหญ่ของข้อ จำกัด คอลัมน์คีย์ต่างประเทศใช้ไวยากรณ์ SQL ต่อไปนี้:

MySQL / SQL Server / ออราเคิล / MS เข้าถึง:

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


ยกเลิกการ จำกัด KEY ต่างประเทศ

ที่จะลดข้อ จำกัด ที่สำคัญต่างประเทศใช้ SQL ต่อไปนี้:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / ออราเคิล / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders