我正在创建我的第一个 mysql 脚本,并希望创建一个包含“类型”列的表。它应该只有两个可能的值:“XYZ”和“ABC”,所以我做了:
CREATE TABLE table(
type varchar(12) NOT NULL,
CHECK (type = 'XYZ' or type = 'ABC');
但是当我测试和插入像 234 或 'John' 这样的值时,它正在工作并且不会返回任何错误。我认为它不应该插入值“约翰”,是吗?
MySQL不支持检查约束:
The CHECK clause is parsed but ignored by all storage engines.
因此,虽然该check
语句没有给出错误,但它会被默默地忽略。
似乎MYSQL没有检查......
http://bugs.mysql.com/bug.php?id=25660
http://blog.christosoft.de/2012/08/mysql-check-constraint/
http://forums.mysql.com/read.php?136,572271,572603#msg-572603
你可以试试触发器。