MySQL 創(chuàng)建表 Check
MySQL 中的 CHECK 約束條件用于確保表中的數(shù)據(jù)符合預期。CHECK 約束條件定義了表中每個列的取值范圍或條件,如果不符合條件,插入或更新操作將被拒絕。
定義 CHECK 約束條件
在創(chuàng)建 MySQL 表時,可以使用 CHECK 約束條件來限制數(shù)據(jù)的取值范圍。例如:
CREATE TABLE students (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT CHECK (age >= 18 AND age<= 35),
PRIMARY KEY (id)
);
上面的語句創(chuàng)建了一個名為 students 的表,其中 age 列的取值必須在 18 到 35 之間。如果嘗試插入一個 age 值不在指定范圍內(nèi)的行,將會遇到以下錯誤:
ERROR 3819 (HY000): Check constraint 'students_chk_1' is violated.
添加 CHECK 約束條件
可以使用 ALTER TABLE 語句來為已經(jīng)存在的表添加 CHECK 約束條件。例如:
ALTER TABLE students ADD CONSTRAINT chk_age CHECK (age >= 18 AND age<= 35);
上面的語句將為 students 表的 age 列添加一個 CHECK 約束條件,規(guī)定 age 取值必須在 18 到 35 之間。
刪除 CHECK 約束條件
使用 ALTER TABLE 語句可以刪除表的 CHECK 約束條件。例如:
ALTER TABLE students DROP CONSTRAINT chk_age;
上面的語句將刪除表 students 中名為 chk_age 的 CHECK 約束條件。