首页 > 解决方案 > 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();
    });
}

标签: javascriptnode.jssqlite

解决方案


推荐阅读