我与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