MySQL可以建立檢查約束嗎?
MySQL是目前最流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,其具備許多強(qiáng)大的功能。關(guān)于檢查約束,MySQL是否支持呢?
MySQL不支持CHECK約束,但擁有OTHER約束。
其他的約束可以使用ENUM約束或SET約束代替CHECK約束。例如,下面這條語句:
CREATE TABLE employees ( emp_no SMALLINT UNSIGNED NOT NULL, birth_date DATE NOT NULL, first_name VARCHAR(14) NOT NULL, last_name VARCHAR(16) NOT NULL, gender ENUM('M','F') NOT NULL, hire_date DATE NOT NULL, PRIMARY KEY (emp_no) );
這里ENUM('M','F')表示的是只有兩種取值'M'和'F',即'Male'和'Female',并用作性別列的約束。
因此,我們可以使用其他方式來實(shí)現(xiàn)約束,MySQL的其他約束可以更好地執(zhí)行該任務(wù)。使用ENUM約束可以使代碼更簡潔,查詢更容易,并將錯(cuò)誤最小化。MySQL確實(shí)有很多約束可用,雖然其中缺少CHECK約束,但用戶仍然可以在必要時(shí)實(shí)現(xiàn)完全相同的功能。