我與Postgres的PG-承諾的node.js內,試圖做一個交易與2個插入順序。第一次插入的結果ID應該在事務的下一個插入中使用。PG-承諾:使用一個查詢一個查詢結果事務
回滾如果任何查詢失敗。 嵌套第二db.none
內的第1 db.one
.then()
將不會回滾1查詢。所以在這裏使用交易。
我停留在使用第二個1日查詢的結果。 這是我現在擁有的。
db.tx(function (t) {
return t.sequence([
// generated using pgp.helpers.insert for singleData query
t.one("INSERT INTO table(a, b) VALUES('a', 'b') RETURNING id"),
t.none("INSERT INTO another_table(id, a_id) VALUES(1, <above_id>), (2, <above_id>)")
]);
})...
第二查詢使用pgp.helpers.insert用於多數據查詢生成。但是,想要使用以前的查詢結果是不可行的。不是嗎!
有沒有辦法讓id
即從第1 INSERT <above_id>
?
尚應符合t.one結果對象。它會包含你的ID。等待@ vitay-t解釋:) –
爲什麼使用'batch'如果你想讓它們順序運行? – pozs
@pozs這是一個錯誤。 t.sequence就是我的意思。編輯了這個問題。 – mythicalcoder