在 MySQL 中存储值的 BOOLEAN 还是 TINYINT?


MySQL 的 BOOLEAN 和 BOOL 都等同于 TINYINT(1)。每当你使用 BOOLEAN 和 BOOL 数据类型创建列时,MySQL 会隐式地将 BOOLEAN 和 BOOL 转换为 TINYINT(1)。BOOLEAN 和 BOOL 等同于 TINYINT(1),因为它们是同义词。

使用 BOOLEAN 数据类型创建表。用于创建表的查询。

mysql> create table BooleanDemo
   -> (
   -> IsOn BOOLEAN
   -> );
Query OK, 0 rows affected (0.58 sec)

现在检查上述表的内部结构。查询如下 −

mysql> show create table BooleanDemo;

输出

+-------------+----------------------------------------------------------------------------------------------------------------------------------+
| Table       | Create Table                                                                                                                     |
+-------------+----------------------------------------------------------------------------------------------------------------------------------+
| BooleanDemo | CREATE TABLE `booleandemo` ( `IsOn` tinyint(1) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci    |
+-------------+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

查看上述样本输出,BOOLEAN 被转换为 tinyint(1)。BOOL 数据类型的情况也是如此。用于创建表的查询如下 −

mysql> create table BOOLDemo
   -> (
   -> validUser BOOL
   -> );
Query OK, 0 rows affected (0.61 sec)

现在检查表的内部结构。查询如下 −

mysql> show create table BOOLDemo;

输出

+----------+------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                       |
+----------+------------------------------------------------------------------------------------------------------------------------------------+
| BOOLDemo | CREATE TABLE `booldemo` (`validUser` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci    |
+----------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

更新于: 2019-07-30

525 次浏览

开启你的 职业生涯

获得完成课程的认证

开始

广告