当你在更新某条数据时,怎么用SQL语句锁定而不让别人同时更新? 请知道的说下。 谢谢了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当你在更新某条数据时,怎么用SQL语句锁定而不让别人同时更新? 请知道的说下。 谢谢了相关的知识,希望对你有一定的参考价值。

当你在更新某条数据时,怎么用SQL语句锁定而不让别人同时更新?
请知道的说下。 谢谢了

参考技术A 你更新的时候,你更新的数据上本身就加了排他锁的,在你更新的这段时间其他人无法再修改数据。或者还有别的操作后再释放这些数据的话可以用事务。本回答被提问者采纳 参考技术B oracle 中可以对某条数据进行行级锁定,锁定后的数据在出现异常或者commit,rollback的时候自动解开 例如: select * from mytable where mytable.id = 1 for update; 多用于存储过程 参考技术C oracle可以使用for update,sqlserver 用 with lock 参考技术D sql本身就有这个机制,你非要的话,可外围编程的语言中,写上相应的代码

sql语句中别名怎么使用

这个sql中我给rownum起的别名叫rn, 但是在执行时报错, 说rn标识符无效
select rownum rn,a.* from (select * from emp order by sal desc) a where rn<10
将where后面的rn改成rownum就能执行, 这是为什么?

这里不能用rn

你的意思可能是

select a.* from (select t.*,rownum rn from emp t order by sal desc) a where rn<10

这样就可以用了,在where条件里面不能用本层查询的字段的别名。
参考技术A 与sql语句的执行顺序有关
先执行的where 后执行的select ,所以在select中的别名 where 获取不到
参考技术B 列的别名 只是为了 显示是 看出来
表的别名 是操作用 的 你就这麼理解就可以了本回答被提问者采纳

以上是关于当你在更新某条数据时,怎么用SQL语句锁定而不让别人同时更新? 请知道的说下。 谢谢了的主要内容,如果未能解决你的问题,请参考以下文章

sql排序后如何拿到某条数据排在第几?

使用Sqlserver更新锁防止数据脏读

如何锁定windows不让别人上网?

sql语句中别名怎么使用

三次输错密码后,系统是怎么做到不让我继续尝试的?

delphi SQL 怎样获取返回数据中某条记录