假设我有以下要在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)。
然而,这些天来,这样做会给您一个警告: Integer display width已弃用。This question是相关的,但更具体地解决了INT(4)的使用。这里的建议是使用INT或忽略警告。在这种情况下,我想我会选择只使用INT,但我的问题更具体到与布尔等价的用法。
这种类似布尔的数据类型的最佳实践是什么?既然TINYINT(1)现在已经被弃用了,我应该只使用TINYINT而不是它吗?或者我应该做一些不同的事情?我的目标是不对这个新数据库使用过时的特性,这些特性可能会在未来的数据库升级中存活数年。
发布于 2020-05-15 02:03:13
用来显示其实并不重要。只需使用TINYINT即可。MySQL确实有BOOLEAN,你也完全可以使用它。它和TINYINT是一样的。
https://stackoverflow.com/questions/61804123
复制相似问题