phpmyadmin 不会将 MySQL TINYINT(1) 更改为 BOOLEAN 数据类型

And*_*ndy 0 mysql phpmyadmin

我正在运行 MySQL 5.5.47 并且有许多数据库表,这些表的列的数据类型为TINYINT(1). 我正在尝试将这些更改为,BOOLEAN但不会更改它们。

使用 phpmyadmin 4.6.0 然后转到 Structure 我正在使用下拉列表将列设置为BOOLEAN. 这将执行以下查询:

ALTER TABLE `feedback` CHANGE `tick_receive_updates` `tick_receive_updates` BOOLEAN NOT NULL;
Run Code Online (Sandbox Code Playgroud)

查询运行成功。

当我查看结构时,它不会更新:列仍被标记为 TINYINT(1)

起初我以为这是一个 phpmyadmin 错误所以我跑了

DESCRIBE feedback;
Run Code Online (Sandbox Code Playgroud)

不幸的是,问题仍然存在 - 列没有从 TINYINT(1)

为什么是这样?

Tho*_*s G 6

这是正常的行为BOOLEAN仅仅是一个同义词TINYINT(1)

MySQL 5.7 参考手册 - 12.1.1 数值类型概述

布尔值,布尔值

这些类型是 TINYINT(1) 的同义词。零值被认为是错误的。非零值被认为是真的:

  • 这不是一个选项,它是一个同义词。MySQL 中有多个同义词,产生它们的原因有多种。BOOLEAN 是其他 RDBMS 上的真实数据类型,同义词使开发人员更容易进行转换。对此没有真正的其他解释。 (3认同)