mysql - NodeJS中promise链中多个SQL查询的问题
问题描述
我有以下代码每天运行一次,首先从表中删除所有记录,然后插入一组新记录,使用LOAD DATA LOCAL INFILE
.
promisemysql.createConnection(currentDB)
.then(function(conn) {
var result = conn.query(returnQueries.returnQueries('deleteSuppliers'));
conn.end();
return;
})
.then(function() {
promisemysql.createConnection(currentDB)
.then(function(conn) {
var result = conn.query(returnQueries.returnQueries('loadSuppliers'));
conn.end();
console.log("Suppliers database updated.");
return;
});
});
查询是LOAD DATA LOCAL INFILE '/SuppliersCSV.csv' INTO TABLE Suppliers FIELDS TERMINATED BY ';' ENCLOSED BY '' LINES TERMINATED BY '\n' IGNORE 1 LINES (supplierCode, supplier) SET id = NULL;
问题是代码在具有 Ubuntu 18.04、NodeJS 12 和 MySQL 5.7.29 的测试 VM 上运行良好,而在另一个具有相同配置的 VM 上具有完全不同的行为。
在第一次运行时,它会从表中删除所有数据,但无法插入任何内容。在第二次运行时,它会插入所有数据。第三个将删除数据而不插入,依此类推...
奇怪的是,我使用了完全相同的代码,但使用了不同的查询(一个巨大的 INSERT 而不是 LOAD DATA LOCAL FILE),并且它在两个 VM 上都有效。
我一直试图弄清楚它已经有一段时间了,到目前为止没有任何运气,而且我的想法已经不多了。
有什么想法吗?
解决方案
推荐阅读
- laravel - 使用 Laravel、VueJS 和 Inertiajs 导出 Excel
- java - 未定义的标签:firestore 内的 loop3
- javascript - 自定义 Google 表格图表的单元格
- python - 为什么列表不保留它的价值?
- python - 将特定于类别的值分配为新列中的观察值
- firebase - 使用 Spring Boot 将图像上传到 Firebase
- redux - 使用(Material-ui + React Redux + SSR 中的 Next.js)重新渲染未更新传递的属性
- windows - 显示内存内容时,windbg 是否会自行处理内核中的分页代码?
- python - 当特定语句需要更多时间执行时,如何在 Python for 循环中跳过迭代?
- csv - 用于搜索(大)未排序数组的索引(类型)