如何在表格中为字段(CHAR(20))创建一个它只能接受的限制,例如“car”或“bike”。
CREATE TABLE Things (
id INTEGER NOT NULL,
thing CHAR(30) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT thingcheck CHECK (thing = "car" OR thing = "bike")
);
如果我插入(1,“笔记本电脑”),它仍会插入!有什么想法吗?
非常感谢你的时间。
---编辑---
正如约翰所指出的,MySQL忽略了CHECK条款。谢谢!
答案 0 :(得分:3)
怎么样:
ENUM('car', 'bike')
答案 1 :(得分:0)
您可以创建一个包含允许值列表的表,然后针对它设置FOREIGN KEY
constraint。但是,真的,为什么不使用ENUM
?
答案 2 :(得分:0)
这个怎么样,
CREATE TABLE Things (
id INTEGER NOT NULL,
thing CHAR(30) NOT NULL CHECK (thing = 'car' or thing='bike'),
PRIMARY KEY (id),
);
你应该用单引号给出字符串!!