免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1614 | 回复: 0
打印 上一主题 下一主题

mysql子查询的原子性 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-12 03:47 |只看该作者 |倒序浏览
sql语句如下:

update table1 set table1.name='john' where table1.id=1 and exists (select name from table2 where name='john' and sex='man')

意思是,当table2中john这行的sex属性为man的条件下,将table1的id=1这行的name设置为john

不知道mysql是否保证上面整条sql语句在执行时是原子操作,如果不是原子的,可能会出现在查询table2条件为真的瞬间,别人把john的sex属性修改了,但因为子查询已经返回为真,update操作还是会执行,这样就错了。

如果子查询不能保证原子,mysql里用join能保证原子性么?

谢谢

[ 本帖最后由 nogox 于 2009-9-12 03:48 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP