MySQL 中当前的布尔列数据类型最佳实践?



假设我想在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一样.

最新更新