sequelize update 原生sql 没有返回值

1.使用sequelize 原生的sql 语句操作,想获取返回值看看更新结果,但是获取不到,代码如下

// 测试修改
    test2: async (req, res, next) => {
        await mysql.transaction(async (t) => {
             let w = await mysql.query('UPDATE user_wallet_occr SET money = money + :money WHERE id =:id', {
             // mysql.query('select * from user_wallet_occr  WHERE id =:id', {
                replacements: {
                    money : 1,
                    id: 'c72c2df6-32dc-4066-94d7-554d09e03400',
                },
                type: mysql.QueryTypes.UPDATE,
                transaction: t
            })

            if (w){
                console.log(w)
            }else{
                console.log('w is null')
            }
            res.ok('ok')

        }).catch(err => {
            console.log('err', err.message)
            res.fail('fail')
        })
    }

输出结果

Executing (76c973f3-f1cd-436f-9653-d1eee2b33660): START TRANSACTION;
Executing (76c973f3-f1cd-436f-9653-d1eee2b33660): SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
Executing (76c973f3-f1cd-436f-9653-d1eee2b33660): SET autocommit = 1;
Executing (76c973f3-f1cd-436f-9653-d1eee2b33660): UPDATE user_wallet_occr SET money = money + 1 WHERE id ='c72c2df6-32dc-4066-94d7-554d09e03400'
w is null
Executing (76c973f3-f1cd-436f-9653-d1eee2b33660): COMMIT;

2.如果使用 sequelize 的 Model 类可以获取返回值。

103133_RTId_263874.png

测试代码如下

// 测试修改
    test2: async (req, res, next) => {
        await mysql.transaction(async (t) => {

            let w = await UserWalletOccrModel.update({
                m: 3
            }, {
                where: {
                    id: 'c72c2df6-32dc-4066-94d7-554d09e03400'
                },
                transaction: t
            })
            console.log('w1>>',w)
            if (w) {
                console.log('w>>',JSON.stringify(w))
            } else {
                console.log('w is null')
            }
            res.ok('ok')

        }).catch(err => {
            console.log('err', err.message)
            res.fail('fail')
        })
    }

输出

Executing (8e59d047-00a4-44f6-ac5a-d497f4f0677e): START TRANSACTION;
Executing (8e59d047-00a4-44f6-ac5a-d497f4f0677e): SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
Executing (8e59d047-00a4-44f6-ac5a-d497f4f0677e): SET autocommit = 1;
Executing (8e59d047-00a4-44f6-ac5a-d497f4f0677e): UPDATE `user_wallet_occr` SET `m`=3 WHERE `id` = 'c72c2df6-32dc-4066-94d7-554d09e03400'
w1>> [ 1 ]
w>> [1]
Executing (8e59d047-00a4-44f6-ac5a-d497f4f0677e): COMMIT;

 

【备注】

1.原始sql ,insert和update 都没有返回值。

转载于:https://my.oschina.net/u/263874/blog/1549465

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值