CHECK 約束限制欄位值的 合法範圍。單欄 CHECK 限制該欄位值;表級 CHECK 可跨欄位驗證 (如:P_Id > 0 AND City = 'Sandnes')。
CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id > 0)
);
CREATE TABLE Persons (
P_Id int NOT NULL CHECK (P_Id > 0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id > 0 AND City = 'Sandnes')
);
-- 單欄
ALTER TABLE Persons ADD CHECK (P_Id > 0);
-- 命名 + 多欄
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id > 0 AND City = 'Sandnes');
| 資料庫 | 語法 |
|---|---|
| SQL Server / Oracle / Access | ALTER TABLE Persons DROP CONSTRAINT chk_Person |
| MySQL | ALTER TABLE Persons DROP CHECK chk_Person |
CHECK 約束是資料庫層級的資料驗證防線,配合應用層驗證雙重保障資料品質。