如何为mysql的bit列插入值

时间:2016-01-01 10:22:36

标签: mysql

我想将值插入MySQL中的位类型列。但是我收到了数据截断错误。

CREATE TABLE `BITTESTTABLE` (
  `db_field` varchar(50) NOT NULL,
   `is_editable` bit(1) NOT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1

如果我使用

插入一行

INSERT INTO BITTESTTABLE values('XYZ','0')

我正在

  

列数据太长,可以使用' is_editable'在第1行

那么如何插入位类型列的数据?

5 个答案:

答案 0 :(得分:14)

您应该使用:

INSERT INTO `BITTESTTABLE` VALUES('XYZ', b'0');

答案 1 :(得分:4)

您需要以像INSERT INTO BITTESTTABLE values('XYZ',0);这样的位格式插入数据。您正在执行values('XYZ','0'),因此它将作为字符串值。

答案 2 :(得分:4)

由于bit是一个数字而不是字符串,您需要输入

INSERT INTO BITTESTTABLE values('XYZ',0)

答案 3 :(得分:3)

一般来说,对于booleanbit数据类型,您可以使用0或1:

INSERT INTO BITTESTTABLE values('XYZ',0);

答案 4 :(得分:2)

您可以直接使用true / false;但是我不确定这是否与MySQL本身或InnoDB有关: 示例:

INSERT INTO BITTESTTABLE values('XYZ',false);    
INSERT INTO BITTESTTABLE values('XYZ',true);

请确保尝试运行:

SELECT TRUE , FALSE  ;

result