sqlite3插入或更新

时间:2018-12-01 09:02:57

标签: javascript node.js sqlite

我想同时使用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();
    });
}

0 个答案:

没有答案