【求助】updlock的问题
时间:2011-11-25
来源:互联网
功能描述:做已存在用户名校验的功能,防止同一时间有多个用户注册同一用户名发生异常
在事务中执行select * from user(updlock) where name = 'admin',想要实现事务提交前锁定表,不再允许其他事务进行增删改操作。
但实际情况是在事务提交前,别的事务虽然不能删改,但是却可以添加数据。虽然用tablockx能实现,但是会影响到其它进程读取数据,严重影响性能。像这种情况我该用什么锁呢?
在事务中执行select * from user(updlock) where name = 'admin',想要实现事务提交前锁定表,不再允许其他事务进行增删改操作。
但实际情况是在事务提交前,别的事务虽然不能删改,但是却可以添加数据。虽然用tablockx能实现,但是会影响到其它进程读取数据,严重影响性能。像这种情况我该用什么锁呢?
作者: hongshengyu 发布时间: 2011-11-25
理论上,要阻止插入只能用表锁
updlock并不能阻止插入动作
这个靠锁不好控制,为什么不加个唯一索引?
updlock并不能阻止插入动作
这个靠锁不好控制,为什么不加个唯一索引?
作者: NBDBA 发布时间: 2011-11-25
holdlock--加上持续锁
SQL code
SQL code
select * from [user] with (updlock,holdlock)where name = 'admin'
作者: roy_88 发布时间: 2011-11-26
引用 2 楼 roy_88 的回复:
holdlock--加上持续锁
SQL code
select * from [user] with (updlock,holdlock)where name = 'admin'
能解释下什么意思吗?这样会不会发生死锁呀?单独用holdlock避免不了死锁。 holdlock--加上持续锁
SQL code
select * from [user] with (updlock,holdlock)where name = 'admin'
作者: hongshengyu 发布时间: 2011-11-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28