我在数据库中的字段将只包含 3 个可能的值:0、1 和 2。所以,我想知道我应该使用什么数据类型?我发现了这个,似乎我应该使用 tinyint(1),但它的范围从 -127 到 126,所以我想知道这是我的选择还是实际上有更好的选择?
问问题
98 次
3 回答
5
tinyint(1) unsigned
可能适合这个
于 2012-05-30T16:30:51.523 回答
0
不推荐,但是……我最初在想,如果空间真的是一个大问题,这可能值得探索。
如果您可以使用 NULL、0、1 而不是 0、1、2,那么布尔值/位也可以工作。
但是,看起来 boolean 和 tinyint 实际上是相同的。而且 tinyint 在 mysql 中的所有数据类型中占用空间最小。见链接。
于 2012-06-08T04:01:36.600 回答
0
如果您希望确保输入的数字仅为 0、1 或 2,那么最好将 CHECK 约束添加到表中。
ALTER TABLE
tableName
ADD CONSTRAINT
checkConstain
CHECK (columnName BETWEEN 0 and 2)
你可以看到一个在SQL Fiddel上工作的例子
于 2012-06-30T18:28:45.113 回答