我正在尝试将数据导入到 MySQL 表。
表格:
CREATE TABLE `MYTABLE` (
`F1` bigint(20) NOT NULL,
`F2` bigint(20) NOT NULL,
`F3` int(11) NOT NULL,
`F4` bigint(20) DEFAULT NULL,
`F5` tinyint(4) NOT NULL,
`F6` bigint(20) NOT NULL,
`F7` bigint(20) NOT NULL,
PRIMARY KEY (`F1`)
) ENGINE=InnoDB default charset=latin1;
数据文件包含这种形式的记录,这些记录之间用制表符分隔:
229733561174 44224449355443 0 0 0 55555557555000 12345678901
导入命令:
mysql> load data infile 'try.txt' INTO TABLE MYTABLE;
我收到的警告:
7 rows in set (0.00 sec)
我不明白为什么前两列的值是 Incorrect integer value
以及为什么第 3-7 列的值都被视为单列。
我尝试将字段分隔符更改为“,”(在加载数据命令中指定它),但仍然收到相同的警告。
输出表的所有列均包含 0(除了获取 NULL 的可选列)。
有人可以告诉我我做错了什么吗?
最佳答案
我发现了问题。我的数据库中的默认字符集是 ucs2,这导致了问题。
如果我在 load data infile
命令中指定不同的字符集,则一切正常:
load data infile 'try.txt' ignore
into table MYTABLE
character set latin1
fields terminated by '\t' enclosed by '' escaped by '\\'
lines terminated by '\n' starting by ''
ignore 1 lines;
关于mysql - 我无法从文件中加载仅包含整数列的 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500229/