首页新闻找找看学习计划

mysql:如果有多个操作同时更新同一张表的同一条记录,怎么控制?

1
[待解决问题]

如题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

OSManager的主页 OSManager | 初学一级 | 园豆:10
提问于:2017-09-20 11:01
< >
分享
所有回答(9)
0

加同步锁,一个操作一个操作有先后顺序的更新就好了。

Rekent | 园豆:89 (初学一级) | 2017-09-20 11:11
0

对啊,加锁就可以了。

猎人博客园 | 园豆:206 (菜鸟二级) | 2017-09-20 11:13
0

百度:关系型数据库 事务要素

吴瑞祥 | 园豆:28675 (高人七级) | 2017-09-20 11:21
0

我们项目量比较小,一般这种直接加悲观锁

让我发会呆 | 园豆:2629 (老鸟四级) | 2017-09-20 11:23
0

加锁,lockForUpdate() 一般加上这句就好了

寞小陌 | 园豆:104 (初学一级) | 2017-09-20 11:25
0

参考:http://blog.csdn.net/jiesa/article/details/52489931

金琥 | 园豆:2540 (老鸟四级) | 2017-09-20 11:26
0

 在调用更新的方法里用lock锁住

jqw2009 | 园豆:1891 (小虾三级) | 2017-09-20 11:33
2

锁毛线啊,数据库在update的时候又不是没锁,一群说加锁的到底是干毛线?一条数据更新锁什么?

这块先来先执行,本来update就带排他。

Daniel Cai | 园豆:10374 (专家六级) | 2017-09-20 18:06

na就是说不用处理?

支持(0) 反对(0) 猝不及防 | 园豆:1129 (小虾三级) | 2017-09-26 17:24

@猝不及防: 事务内单条数据更新不用额外写东西。

支持(0) 反对(0) Daniel Cai | 园豆:10374 (专家六级) | 2017-09-26 18:21

update执行时,默认就加了行锁了吧

支持(0) 反对(0) cheerupWoo | 园豆:194 (初学一级) | 2017-10-05 22:49
0

作为一个数据库,多事务并发控制是它最基本的能力,即:数据库会帮你处理的。

一群说加锁的到底是干毛线?

说一点深入的,不同的数据库,不同的数据库引擎,处理方式都是不一样的。

比如有的数据库、数据库引擎更新表的一条记录的时候上的是表锁,比如MySQL的SAM。。。。

有的则是锁行。。。比如Oracle、MySQL的InnoDB。。。。。

总之,你不用管。。。正常些代码即可,除非你在事务里面有序的更新两张表,另一事务倒序更新这两张表,那么这个就会有死锁,数据库也会帮你处理的。。。。。

依然菜刀 | 园豆:249 (菜鸟二级) | 2017-11-13 16:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册