为什么mysql将bool转换为tinyint(1)而应该是bool转换为mysql表[duplicate]

时间:2022-09-16 14:22:39

This question already has an answer here:

这个问题已经有了答案:

When I was using type as bool when creating table it was directly converted into tinyint (1) , I don't know exact deference why mysql convert it into tinyint instead of datatype bool ?

当我在创建表时使用type作为bool时,它被直接转换为tinyint(1),我不知道为什么mysql将它转换为tinyint而不是datatype bool ?

2 个解决方案

#1


3  

BOOL is equivalents of TINYINT(1). TINYINT Uses the smallest integer data type.

BOOL相当于TINYINT(1)。TINYINT使用最小的整数数据类型。

so whenever you try to create table with boolean datatype it automatically gets converted to inttype

因此,每当您尝试使用布尔数据类型创建表时,它都会自动转换为inttype

e.g.
CREATE TABLE IF NOT EXISTS `test` 
(
  `p_id` int(11) NOT NULL,
  `p_name` varchar(25) NOT NULL,
  `p_description` varchar(100) NOT NULL,
  `p_status` bool NOT NULL DEFAULT TRUE
) 

Thanks, Amit

谢谢,阿米特

#2


3  

TINYINT Uses the smallest integer data type .

TINYINT使用最小的整数数据类型。

BOOL is equivalents of TINYINT(1).

BOOL相当于TINYINT(1)。

#1


3  

BOOL is equivalents of TINYINT(1). TINYINT Uses the smallest integer data type.

BOOL相当于TINYINT(1)。TINYINT使用最小的整数数据类型。

so whenever you try to create table with boolean datatype it automatically gets converted to inttype

因此,每当您尝试使用布尔数据类型创建表时,它都会自动转换为inttype

e.g.
CREATE TABLE IF NOT EXISTS `test` 
(
  `p_id` int(11) NOT NULL,
  `p_name` varchar(25) NOT NULL,
  `p_description` varchar(100) NOT NULL,
  `p_status` bool NOT NULL DEFAULT TRUE
) 

Thanks, Amit

谢谢,阿米特

#2


3  

TINYINT Uses the smallest integer data type .

TINYINT使用最小的整数数据类型。

BOOL is equivalents of TINYINT(1).

BOOL相当于TINYINT(1)。