(四)sequelize postgres事务

自动提交

sequelize.transaction(function (t) {
    return Account.create({
        id: '461910',
        account: '4619'
    }, {
        transaction: t
    }).then(account => {
        return account.destroy({
            transaction: t
        });
    })
}).then(() => {}, err => console.log(err));

手动提交

sequelize.transaction().then(function (t) {
    return Account.create({
        id: '461910',
        account: '4619'
    }, {
        transaction: t
    }).then(account => {
        return account.destroy({
            transaction: t
        });
    }).then(() => t.commit(), err => r.rollback());
});

Promise.all()

sequelize.transaction(function (t) {
    return Promise.all([
        Account.create({}, {transaction: t}),             //新增单条数据
        Account.bulkCreate([], {transaction: t}),         //批量新增数据
        Account.update({}, {where: {}, transaction: t}),  //更新满足某条件数据,第一个参数为修改数据内容
        Account.destroy({where: {}, transaction: t}),     //删除满足某条件数据
        forEach([], r => r.save({transaction: t})),       //更新某数组实例数据
        forEach([], r => r.destroy({transaction: t})),    //删除某数组实例数据
        sequelize.query(sql, {                            //执行sql语句
            type: sequelize.QueryTypes.SELECT,
            transaction: t
        })
    ])
}).then(result => {
    console.log(result);                                  //返回promise执行结果数组
}, err => console.log(err));

sequelize transaction

猜你喜欢

转载自www.cnblogs.com/chenmengyuan/p/9146353.html