将csv文件数据插入mysql

时间:2014-03-25 09:40:13

标签: mysql csv windows-8 import mysql-workbench

我想从csv文件中将数据插入到mysql表中。从region_codes.csv文件导入数据。在region_codes.csv文件中,第3列中有3列,它有,个分隔数据,包括那些逗号如何在mysql中插入。

DROP TABLE IF EXISTS `region_codes`;
CREATE TABLE `region_codes` (
    `country_code` CHAR(2) NULL,
    `region_no` varchar(5) NOT NULL,
    `region` VARCHAR(45) NULL,
    INDEX `idx_country_code` (`country_code`)
) COLLATE='utf8_bin' ENGINE = MyISAM;

使用LOAD DATA LOCAL INFILE我导入数据,但只有1000行从4066行导入。

LOAD DATA LOCAL INFILE 'C:/region_codes.csv' INTO TABLE `region_codes` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

如何从csv文件向mysql region_codes表中插入大量数据。

屏幕截图: Action output of MySql

2 个答案:

答案 0 :(得分:2)

如果它适用于您,您可以尝试以下语法,否则提供c​​sv数据:

LOAD DATA LOCAL INFILE 'C:/region_codes.csv' INTO TABLE `region_codes` FIELDS ESCAPED BY '\\' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';

如果上述语法不起作用,则再次通过下面的命令导出数据,并通过下面给定的命令导入。

select * into outfile 'C:/region_codes.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n' from `region_codes`;

现在使用下面的命令(忽略列标题行)

LOAD DATA LOCAL INFILE 'C:/region_codes.csv' INTO TABLE `region_codes` FIELDS ESCAPED BY '\\' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

注意:如果手动准备数据,则需要手动更正。

如果仍然无效,请附上您的csv数据以检查确切的问题。

答案 1 :(得分:0)

您可以这样使用mysqlimport工具:

mysqlimport  --ignore-lines=1 --fields-terminated-by=,
--columns='ID,Name,Phone,Address' --local -u root -p
Database /path/to/csvfile/TableName.csv 

以下是完整的解释:http://chriseiffel.com/everything-linux/how-to-import-a-large-csv-file-to-mysql/