我在MySQL中创建了一个表
create table bittest (id int(11),constant bit(1) default b'0' );
然后,
insert into bittest(id) values (1);
选择查询打印为
+------+----------+
| id | constant |
+------+----------+
| 1 | |
+------+----------+
1 row in set (0.00 sec)
显然,常量值不会显示为位。
当我使用mysqldump导出时,insert语句将导出为
INSERT INTO `bittest2` VALUES (1,'\0');
导致问题,因为我不想插入空值。
有解决方法吗? MySQL版本5.7.13
答案 0 :(得分:1)
5.7.13对我的工作正常。您错误地将bitvalue为0的输出视为命令行工具中的屏幕可以显示的内容。
它出口很好,进口很好。此查询显示第1行:
select * from bittest where constant=b'0';
无论您是否期望显示器上的人类可读取0的位值。
导出:
mysqldump -u UserName -p so_gibberish > c:\nate\bittest.sql
这里没有问题可以解决。
mysqldump的:
答案 1 :(得分:0)
您可以将hex-blob
选项与mysqldump
一起使用。
mysqldump -u[user-name] -p [db-name] [table-name] --hex-blob > [file-name].sql
然后,sql文件显示以下值。
b'0'
至0x00
b'1'
至0x01
您可以正确导入转储文件。