CHAR字段可能只有某些值 - CONSTRAINT

时间:2011-10-11 00:41:54

标签: mysql sql

如何在表格中为字段(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条款。谢谢!

3 个答案:

答案 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),
);

你应该用单引号给出字符串!!