CHECK 限制用于限制列中的值的範圍,限制範圍取決于。如果對單個列定義 CHECK 限制,那麼該列隻允許特定的值。如果對一個表定義 CHECK 限制,那麼此限制會基于行中其他列的值在特定的列中對值進行限制。
(1) CREATE TABLE 時的 SQL CHECK 限制
下面的 SQL 在 "Persons" 表建立時在 "P_Id" 列上建立 CHECK 限制。CHECK 限制規定 "P_Id" 列必須隻包含大于 0 的整數。
MySQL:
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)
)
SQL Server / Oracle:
P_Id int NOT NULL CHECK (P_Id>0),
City varchar(255)
如需命名 CHECK 限制,并定義多個列的 CHECK 限制,請使用下面的 SQL 文法:
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
(2) ALTER TABLE 時的 SQL CHECK 限制
當表已被建立時,如需在 "P_Id" 列建立 CHECK 限制,請使用下面的 SQL:
ALTER TABLE Persons
ADD CHECK (P_Id>0)
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
(3) 撤銷 CHECK 限制
如需撤銷 CHECK 限制,請使用下面的 SQL:
DROP CONSTRAINT chk_Person
DROP CHECK chk_Person
資料來源:
SQL 限制(Constraints)
https://www.runoob.com/sql/sql-constraints.htmlSQL CHECK 限制
https://www.runoob.com/sql/sql-check.html