Từ khóa NGOẠI KHÓA SQL
TỪ KHÓA NGOẠI TỆ
Ràng FOREIGN KEY
buộc là một khóa được sử dụng để liên kết hai bảng với nhau.
KHÓA NGOẠI LỆ là một trường (hoặc tập hợp các trường) trong một bảng tham chiếu đến KHÓA CHÍNH trong một bảng khác.
SQL FOREIGN KEY trên TẠO BẢNG
SQL sau tạo một TỪ KHÓA NGOẠI TỆ trên cột "PersonID" khi bảng "Đơn hàng" được tạo:
MySQL:
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau:
MySQL / SQL Server / Oracle / MS Access:
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 trên ALTER TABLE
Để tạo ràng buộc NGOẠI KHÓA trên cột "PersonID" khi bảng "Đơn hàng" đã được tạo, hãy sử dụng SQL sau:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
VƯỢT QUA Ràng buộc ĐỐI NGOẠI
Để bỏ một ràng buộc NGOẠI KHÓA, hãy sử dụng SQL sau:
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;