Ràng buộc KHÓA CHÍNH trong SQL
Ràng buộc KHÓA CHÍNH trong SQL
Ràng buộc PRIMARY KEY
xác định duy nhất từng bản ghi trong bảng.
Khóa chính phải chứa các giá trị ĐỘC ĐÁO và không được chứa giá trị NULL.
Một bảng chỉ có thể có MỘT khóa chính; và trong bảng, khóa chính này có thể gồm một hoặc nhiều cột (trường).
KHÓA CHÍNH SQL trên TẠO BẢNG
SQL sau đây tạo PRIMARY KEY
trên cột "ID" khi bảng "Người" được tạo:
MySQL:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
Máy chủ SQL/Oracle/MS truy cập:
CREATE TABLE Persons
(
ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
Để cho phép đặt tên cho ràng buộc PRIMARY KEY
và để xác định ràng buộc PRIMARY KEY
trên nhiều cột, hãy sử dụng cú pháp SQL sau:
Truy cập MySQL / SQL Server / Oracle / MS:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);
Lưu ý: Trong ví dụ trên chỉ có MỘT PRIMARY KEY
(PK_Person). Tuy nhiên, GIÁ TRỊ của khóa chính được tạo thành từ HAI CỘT (ID + Họ).
KHÓA CHÍNH SQL trên BẢNG ALTER
Để tạo ràng buộc PRIMARY KEY
trên cột "ID" khi bảng đã được tạo, hãy sử dụng SQL sau:
Truy cập MySQL / SQL Server / Oracle / MS:
ALTER TABLE Persons
ADD PRIMARY KEY (ID);
Để cho phép đặt tên cho ràng buộc PRIMARY KEY
và để xác định ràng buộc PRIMARY KEY
trên nhiều cột, hãy sử dụng cú pháp SQL sau:
Truy cập MySQL / SQL Server / Oracle / MS:
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
Lưu ý: Nếu bạn sử dụng ALTER TABLE
để thêm khóa chính thì (các) cột khóa chính phải được khai báo là không chứa giá trị NULL (khi bảng được tạo lần đầu tiên).
BỎ Ràng buộc KHÓA CHÍNH
Để loại bỏ ràng buộc PRIMARY KEY
, hãy sử dụng SQL sau:
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY;
Máy chủ SQL/Oracle/MS truy cập:
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;