MySQL可以建立檢查約束嗎?
MySQL是目前最流行的開源關系型數據庫管理系統之一,其具備許多強大的功能。關于檢查約束,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',并用作性別列的約束。
因此,我們可以使用其他方式來實現約束,MySQL的其他約束可以更好地執行該任務。使用ENUM約束可以使代碼更簡潔,查詢更容易,并將錯誤最小化。MySQL確實有很多約束可用,雖然其中缺少CHECK約束,但用戶仍然可以在必要時實現完全相同的功能。