MySQL LOAD DATA INFILE不加载完整数据

时间:2019-12-29 07:32:55

标签: mysql node.js csv sequelize.js load-data-infile

我正在尝试在CSV文件中向MySQL表插入一百万行数据。每次我从node.js运行以下脚本时,它只会插入部分行,每次我运行该脚本时都会更改。

        await mysqlDB.sequelize.query(`LOAD DATA LOCAL INFILE './out.csv' 
                            INTO TABLE product_inventories_product_code_TEMP 
                            COLUMNS TERMINATED BY ','
                            OPTIONALLY ENCLOSED BY '"'
                            ESCAPED BY '"'
                            LINES TERMINATED BY '\n'
                            IGNORE 1 ROWS;`)

我不确定为什么不插入CSV中的所有行。

CSV格式很简单。

id,product_code
26,STM-iY-ofyRH
27,STM-UmHBxU71
28,STM-UmHBeU71
29,STM-UmHBtU71
30,STM-UmHBwU71

我正在使用sequelize原始查询插入。请帮忙。

1 个答案:

答案 0 :(得分:0)

以下是使用nodejs在Mysql中上传CSV的代码

var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "Your UserName",
password: "Your Password",
database: "Your DB"
});

con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
var sql = "LOAD DATA LOCAL INFILE 'FilePath' REPLACE INTO TABLE YOUR_TABLE_NAME FIELDS 
TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES (Column 
names Comma Separed) set id = NULL;"
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
});