mybatis框架下mysql多表更新的操作

我在mybatis框架下对mysql进行操作遇到一个问题:我希望对多张结构相同的表进行更新,而且只是更新其中 ctr_cp 属性的值,但是我采用下面的语句时报错

update (select * from a_reviews union all select * from b_reviews) as test set ctr_cp=true
我之所以这么写,是因为查表是可以的:

select * from (select * from a_reviews union all select * from b_reviews) as test
于是我就去搜了搜,发现其实多表更新并不用这么麻烦,但是网上给出的都是多表联合更新的情况:

update a_reviews,b_reviews set a_reviews.ctr_cp=true, b_reviews.ctr_cp=1 where ...

 要注意的是,我的表格式都相同,这么写有些繁琐,一来是where一定要写条件,而来这种语句多用于两个表联合查询,需要增加两个表的连接条件。于是后来我用了数据库的过程调用,这样子可以比较方便的对多个表进行操作,具体如下: 

使用常规的创建存储过程方法,会发现各种报错。在SQL SERVER下可以成功的写法,在MySQL下可能不行,原因是MySQL中需要设置DELIMITER。

因为在procedure中经常要用到默认的命令结束符-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值