0
我想插入一個JSON數組到Postgres中。一切似乎都成功運行(表被創建),但沒有插入數據,也沒有給出錯誤。我正在使用異步/等待方法進行事務處理,但我無法理解失敗的原因。插入JSON失敗Node-Postgres
(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, $1::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在哪裏?你沒有添加任何東西到表中。 –
'json_populate_recordset'是否爲你插入?我想我的印象是基於postgres [docs](https://www.postgresql.org/docs/current/static/functions-json.html) –
您的誤解。它填充了「SELECT」的結果,它與插入記錄無關。 –