今天有一个表的一个字段的类型为BIT(1),我准备往里插入一个值‘0’,但是MySQL一直提示“Data too long for column XXX”,解决办法很简单:
原文地址:http://www.heidisql.com/forum.php?t=7897
The MySQL manual does not seem to provide any usage example but it explains BIT among the numeric data types:
http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html
So we can assume it can be handled as a number. And given it's a bit field, it's likely than hexadecimal notation will make things easier. So I guess you can:
- Use hexadecimal notation to insert data (optional)
- Use the HEX() function to read the column (mandatory)
An example:
CREATE TABLE `test` (
`id` INT(11) NULL DEFAULT NULL,
`is_winter` BIT(1) NULL DEFAULT NULL
)
ENGINE=InnoDB;
insert into test (id, is_winter) values
(1, 0x0),
(2, 0x1),
(3, 0x2); -- This should be invalid
select id, hex(is_winter)
from test;
And we get:
"id";"hex(is_winter)"
"1";"0"
"2";"1"
"3";"1"