Knex交易中的多项操作
Multiple operations in Knex transaction
我要在一个函数中对数据库执行五 (5) 项操作。我想将它们放入事务中,但我发现将每个都放入前一个操作的回调中有点奇怪。我怎样才能以优雅和可读的方式做到这一点?
Knex 具有内置的事务支持,如下所示:
await knex.transaction(async trx => {
await knex('users')
.insert({id: 1, username: 'foo'})
.transacting(trx);
await knex('members')
.insert({userId: 1})
.transacting(trx);
});
稍微简单一点的版本。 .transacting()
实际上几乎不需要,因为您可以使用 trx
而不是 knex
.
构建应该直接转到同一事务的查询
await knex.transaction(async trx => {
await trx('users').insert({id: 1, username: 'foo'});
await trx('members').insert({userId: 1});
});
我要在一个函数中对数据库执行五 (5) 项操作。我想将它们放入事务中,但我发现将每个都放入前一个操作的回调中有点奇怪。我怎样才能以优雅和可读的方式做到这一点?
Knex 具有内置的事务支持,如下所示:
await knex.transaction(async trx => {
await knex('users')
.insert({id: 1, username: 'foo'})
.transacting(trx);
await knex('members')
.insert({userId: 1})
.transacting(trx);
});
稍微简单一点的版本。 .transacting()
实际上几乎不需要,因为您可以使用 trx
而不是 knex
.
await knex.transaction(async trx => {
await trx('users').insert({id: 1, username: 'foo'});
await trx('members').insert({userId: 1});
});