我正在运行MySQL 5.5.47,并且有许多数据库表,其数据类型为TINYINT(1)
的列。我试图将这些更改为BOOLEAN
,但它不会改变它们。
使用phpmyadmin 4.6.0然后转到结构I,使用下拉列表将列设置为BOOLEAN
。这将执行以下查询:
ALTER TABLE `feedback` CHANGE `tick_receive_updates` `tick_receive_updates` BOOLEAN NOT NULL;
查询成功运行。
当我查看结构时,它不会更新:列仍然标记为TINYINT(1)
起初我以为这是一个phpmyadmin bug,所以我跑了
DESCRIBE feedback;
不幸的是问题仍然存在 - 列没有从TINYINT(1)
为什么会这样?
答案 0 :(得分:3)
这是正常行为,因为BOOLEAN
只是TINYINT(1)
的同义词
MySQL 5.7 Reference Manual - 12.1.1 Numeric Type Overview
BOOL,BOOLEAN
这些类型是TINYINT(1)的同义词。值为零 假。非零值被认为是真的: