javascript - sqlite3 插入或更新
问题描述
我想同时使用 sqlite3 插入/更新一列,而其他列不受影响。我当前的代码只是创建一个新行而不是更新现有的行。
编辑:重要的列是Strength, Dexterity, Speed, Defense
并且由{data_type}
. 可以覆盖任何其他列。
async function csvToSql(data_path, data_type) {
const date = moment().format("DD-MM-YYYY")
let result = await csv().fromFile(data_path);
db.serialize(function () {
// Create table
db.run(`CREATE TABLE IF NOT EXISTS daily(Date DATE, Name VARCHAR(255) UNIQUE, Profile TEXT, Strength Int, Speed Int, Dexterity Int, Defense Int)`, (err) => {
if (err) {
console.log(err);
}
});
//Populate
let query = db.prepare(`INSERT OR REPLACE INTO daily (Date, Name, Profile, ${data_type} ) VALUES (?, ?, ?, ?)`);
if (statType.includes(data_type)) {
for (let i = 0, j = result.length; i < j; i++) {
query.run(date, result[i].Player, result[i]['Player Profile'], result[i].Contribution, (err) => {
if (err) {
console.log(err);
}
})
}
}
query.finalize();
});
}
解决方案
推荐阅读
- typescript - 始终返回参数数组的值函数的打字稿定义
- electron - ElectronJS Frontend 发布后可以修改吗?
- javascript - 关于 Cache-Control HTTP 标头的混淆
- java - docker image 构建另一个镜像
- git - 如何完成 git submodule update --init --recursive 离线?
- javascript - 为什么 router.query 在第一次渲染时在 NextJS 中返回一个空对象?
- python - 函数参数内的函数调用
- php - WooCommerce 不同语言的评论/评论
- javascript - 在 React 中将页面的背景颜色(可以随时更改)调整为按钮的背景颜色
- vertica - 需要vertica中的所需日期格式