MySql CHECK 檢查限制 (SQL CHECK Constraint)

CHECK 檢查限制 (SQL CHECK Constraint)

CHECK 限制用來約束欄位中的可用值,以保證該欄位中的資料值都會符合您設定的條件。

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE customer (
C_Id INT NOT NULL CHECK (C_Id>0),
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20)
);
CREATE TABLE customer (
C_Id INT NOT NULL,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20),
CHECK (C_Id>0)
);

在 MySQL 增加 CHECK 限制不會有錯誤,但是沒有用,CHECK 並不會被執行喔!

1
2
3
4
5
6
7
CREATE TABLE customer (
C_Id INT NOT NULL,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20),
CONSTRAINT chk_Customer CHECK (C_Id>0 AND Name!='XXX')
);

更改資料表限制 ALTER TABLE…

1
ALTER TABLE customer ADD CHECK (C_Id>0);

替主鍵命名與多欄位的組合鍵:

1
2
ALTER TABLE customer
ADD CONSTRAINT chk_Customer CHECK (C_Id>0 AND Name!='XXX');

移除資料表限制 ALTER TABLE…

1
ALTER TABLE customer DROP CONSTRAINT chk_Customer;