我正在将csv文件加载到空表中,成功且没有错误。当比较原始行的数量(从外部应用程序中查看.csv和从输出响应中查看)与结果表中的行数(来自表检查器)时,似乎并非所有行都在导入。 Table Inspector报告该表有1,416,824行,而原始csv有1,419,910行。数据集中应该没有复制的主键,但如果是这种情况,我应该在这些行中出错。
表格结构:
CREATE TABLE `table1` (
`pkfield` varchar(10) NOT NULL,
`field1` varchar(3) DEFAULT NULL,
`field2` varchar(1) DEFAULT NULL,
`field3` varchar(1) DEFAULT NULL,
PRIMARY KEY (`pkfield`),
UNIQUE KEY `pkfield_UNIQUE` (`pkfield`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
导入命令:
LOAD DATA INFILE 'c:/table1.csv'
INTO TABLE myschema.table1
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
MySQL Workbench响应:
1419910 row(s) affected Records: 1419910 Deleted: 0 Skipped: 0 Warnings: 0
来自csv文件的示例(数据模拟):
6623950258,XYZ,A,B
5377103432,XYZ,A,B
9131144416,XYZ,A,A
1326703267,XYZ,A,B
7847786312,XYZ,A,B
1119927042,XYZ,B,B
4144055385,CDE,A,B
4563489252,XYZ,A,B
5733611912,XYZ,A,B
3309418377,XYZ,A,B
6928148128,XYZ,A,B
1152657670,XYZ,A,B
8143082292,CDE,A,B
9373340750,XYZ,A,A
3318949288,XYZ,A,B
1166427684,XYZ,A,B
5062296807,XYZ,B,A
4624323293,XYZ,A,B
3088992643,CDE,A,B
6477504847,XYZ,A,B
非常感谢任何建议或解释。亲切的问候。
答案 0 :(得分:1)
老实说,我自己不确定为什么在重新导入表格后行数不准确。我认为表检查器从某些statistics table获取数据,据我所知,只有在表变化超过10%时才会更新。也许这就是原因。但是,总是可以使用传统的
获取准确的行数select count(*) from myschema.table1;
正如@nbayly所说,这给出了1419910行的预期结果,与LOAD DATA报告的数字相符。