我看过一些资料,说mysql中的bool类型是tinyint(1)的别名,因此我应该使用tinyint。
我的问题如下: 我需要声明它为无符号类型吗?也就是说,这是必须的吗?
purchased tinyint(1) unsigned not null DEFAULT 0,
or
purchased tinyint(1) not null DEFAULT 0,
没必要,直接保留它的签名。实际上,无论如何都不重要- 0和1都在TINYINT
的有效值范围内,而其签名无关紧要。
但是,认真考虑一下,最好将其声明为BOOL
,这样非常清楚地表示它是一个真或假的值。
BOOL
是 TINYINT(1)
的同义词。 - Michael如果您将其用于存储布尔值,特别是在这种情况下,无需声明为无符号。
具体例子: https://mysqlconnector.net/api/mysqlconnector/mysqlconnectionstringbuilder/treattinyasboolean/
TINYINT(1)
可能意味着“从0到9的任何值”;BOOL
具体表示“0或1”(尽管我想你可能会误传你的意图:-))。 - Ted Hopp