假设我想在MySQL中创建以下伪表:
CREATE TABLE 'Stuff' (
'ID' bigint NOT NULL AUTO_INCREMENT,
'IsAThing' boolean NOT NULL,
PRIMARY KEY ('ID')
)
截至目前(v8.0.x(,MySQL实际上没有布尔数据类型,相反,我需要使用TinyInt
。过去,最佳实践是使用TinyInt(1)
,其中(1)
部分与其说是数据类型,不如说是默认的显示配置(即仅显示 TinyInt 数字的 1 位数字,即使它存储值 100(。
但是,如今,这样做会向您发出警告,指出整数显示宽度已弃用。这个问题是相关的,但更具体地解决了INT(4)
的使用。建议使用INT
或忽略警告。在这种情况下,我想我会选择只使用INT
但我的问题更具体地针对布尔等效用法。
这种类似布尔的数据类型的最佳实践是什么?鉴于该功能现已弃用,我应该只使用TINYINT
而不是TINYINT(1)
吗?还是我应该做一些不同的事情?我的目标是不对这个新数据库使用已弃用的功能,这些功能可能会在未来的数据库升级中存在多年。
显示 with 并不重要。只需使用TINYINT
.MySQL确实有BOOLEAN
,你也可以完全使用它。这简直和TINYINT
一样.