一尘不染

BOOLEAN或TINYINT混乱

mysql

我正在为一个站点设计一个数据库,在该站点中,我需要使用布尔日期类型来仅存储2个状态,即true或false。我正在使用MySQL。
在使用phpMyAdmin设计数据库时,我发现我同时拥有BOOLEAN数据类型和TINYINT数据类型。
我浏览了不同的文章,有人说TINYINT与BOOLEAN相同,没有区别。有人说BOOLEAN在MySQL中转换为TINYINT。

我的问题是,如果两者相同,为什么会有两个?应该只有其中之一。

这是我阅读的文章的参考:
http :
//www.careerride.com/MySQL-BOOL-TINYINT-BIT.aspx

http://dev.mysql.com/doc/refman/5.5/en/numeric-type
-overview.html


阅读 279

收藏
2020-05-17

共1个答案

一尘不染

MySQL没有内部布尔数据类型。它使用最小的整数数据类型-TINYINT。

BOOLEAN和BOOL是TINYINT(1)的等效项,因为它们是同义词。

尝试创建此表-

CREATE TABLE table1 (
  column1 BOOLEAN DEFAULT NULL
);

然后运行SHOW CREATE TABLE,您将获得以下输出-

CREATE TABLE `table1` (
  `column1` tinyint(1) DEFAULT NULL
)
2020-05-17