与 TINYINT(1) 相比,使用 BOOLEAN 有什么好处?

Que*_*low 16 mysql datatypes

从 MySQL 手册,它说:

布尔值,布尔值

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

我创建了一个 BOOLEAN 列0作为默认值。然后我将值更新为2. 从逻辑上讲,我希望 MySQL 接受0或者1因为它是一个布尔值。但是,MySQL 没有发出错误或阻止我执行更新。

如果 BOOLEAN 的工作方式与 TINYINT(1) 完全相同,那么我使用 TINYINT(1) 还是 BOOLEAN 有什么区别吗?

dez*_*zso 12

这两个实际上是同义词,因此您可以互换使用它们。你不会看到它们之间的任何区别。

如果您只想允许 0 和 1,您仍然可以使用该bit类型。