天天看點

資料庫必知詞彙:檢查限制(CHECK)

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.html

SQL CHECK 限制

https://www.runoob.com/sql/sql-check.html