我正在运行 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)
为什么是这样?
这是正常的行为BOOLEAN仅仅是一个同义词的TINYINT(1)
MySQL 5.7 参考手册 - 12.1.1 数值类型概述
布尔值,布尔值
这些类型是 TINYINT(1) 的同义词。零值被认为是错误的。非零值被认为是真的:
| 归档时间: |
|
| 查看次数: |
4899 次 |
| 最近记录: |