插入 JSON 失败 Node-Postgres

Insert JSON Fails Node-Postgres

我正在尝试将 JSON 的数组插入到 Postgres 中。 运行 看来一切都成功了(创建了 table),但是没有插入数据,也没有给出错误。我正在使用 async/await 交易方法,但我无法理解失败的原因。

(async() => {

    const client = await pool.connect()

    let val= [
        {"table_pk":1,"NAME":"my Great Name","ROLE":"name1"},
        {"table_pk":2,"NAME":"new Name","ROLE":"name1"},
        {"table_pk":3,"NAME":"someone's funny name","ROLE":"name1"}
        ]

    try {
        await client.query('BEGIN');
        await client.query('DROP TABLE IF EXISTS myTable')
        await client.query(`CREATE TABLE myTable(table_pk INTEGER PRIMARY KEY, name TEXT, role TEXT)`)

        await client.query(`INSERT INTO myTable SELECT * FROM jsonb_populate_recordset(NULL::myTable, ::jsonb)`,[JSON.stringify(val)]);
        await client.query('COMMIT');
    }
    catch (e) {
        await client.query('ROLLBACK');
        throw e
    }
    finally {
        client.release();
    }
})().catch(e => console.error(e.stack))

编辑 更新了代码以解决缺少的 INSERT,现在将插入行,但不是所有数据。

INSERT 失败,因为 JSONB 在涉及列名时区分大小写。我在 val 数据中有大写列名称,它们应该更小。感谢@vitaly-t 指出我原来 post.

中缺少的 INSERT