MySQL是一個關系型數據庫管理系統(tǒng),支持許多約束條件來規(guī)范我們的數據表。這些約束條件可以保證數據表的完整性,避免不合法數據的插入、更新或刪除。
其中,CHECK約束可以規(guī)定一些邏輯操作或者表達式,進行判斷,決定是否接受或者拒絕對記錄的修改或插入。CHECK約束是在定義字段的時候使用,使用格式如下:
CHECK (邏輯表達式)
我們可以通過下面的語句為一個學生表添加一個CHECK約束,限制年齡必須大于等于16歲:
CREATE TABLE Student ( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, age INT CHECK (age >= 16), gender VARCHAR(10), score INT );
當我們嘗試插入一個不符合CHECK約束的記錄時,MySQL會報錯。例如,以下語句執(zhí)行時,MySQL會報錯,因為年齡小于16:
INSERT INTO Student (id, name, age, gender, score) VALUES (1, 'Tom', 15, 'male', 90);
這時候我們可以通過修改數據表或者約束條件來解決問題。當然,靈活使用CHECK約束可以讓我們更好地規(guī)范數據表,避免不合法數據的出現。