文章详情页
mysql for update 如果事务一直没有提交会不会这表数据一直锁在那里
浏览:271日期:2022-06-15 08:55:29
问题描述
mysql for update 锁住了一条或多条数据,或者是整个表 如果事务一直没有提交(比如服务器挂掉了)会不会这表数据一直锁在那里
问题解答
回答1:不会。客户端连接断开后,会自动释放锁。
客户端1
set AUTOCOMMIT = 0;BEGIN;SELECT * FROM articles WHERE id=1 FOR UPDATE ;
客户端2
set AUTOCOMMIT = 0;BEGIN;SELECT * FROM articles WHERE id=1 FOR UPDATE ;
这时,客户端2的查询会卡住。直到客户端1 commit 或 rollback 。但是,如果客户端1直接关闭窗口断开连接,客户端2也能直接拿到锁。说明客户端断开时,会自动释放锁。
那么问题来了,客户端1断开连接后,是自动 rollback 了吗?
相关文章:
1. javascript - Vue $refs 为什么无法获取组件对象2. php - 注册验证邮箱失效后操作问题3. clone - git sourceTree克隆仓库时,都不停弹出Password Required弹窗,即时输入正确的git账号密码还是弹出4. android - java tm platform se binary 占用很多内存5. java - 做一个视频播放器,想实现一个功能,如果3秒不点击屏幕任何,则下方一个界面布局(显示按钮那些的)自动消失。6. node.js - npm安装模块时,在cmd上显示的是一条白线,白线前面是一天反斜线转圈圈,然后就出现npm ERR错误了,求帮助,谢谢7. java - Spring MVC 映射请求问题8. html5 - 请问一下写H5的时候 你们都是兼容那些手机9. mysql自动提交的问题10. docker-compose 为何找不到配置文件?
排行榜

网公网安备