日期:2014-05-17  浏览次数:20827 次

关于for update,怎么用?
我在编辑某条数据时进行打开锁定是这样用吗:
select   *   from   table_name   where   id=1   for   update
如何解除锁定呢?等待update语句解除吗?
如果我想等待10分钟如果没有update语句就自动解除锁定应该怎么写呢?
等待高手指点
gjunyu@qq.com

------解决方案--------------------
commit 或rollback解除锁定
------解决方案--------------------
LOCK TABLE
语法:
LOCK TABLE table_1 [,table_2, ..., table_n] IN lock_mode MODE
NOWAIT
变量:
table_1,...,table_n: 一系列你想通过使用LOCK TABLE语句锁住的数据库表。
lock_mode: 对于某一数据库表你要设定的锁定模式。你可以从如下的锁定模式中任选一个。
EXCLUSIVE
SHARE ROW EXCLUSIVE
SHARE
SHARE UPDATE
ROW SHARE
ROW EXCLUSIVE
NOWAIT: Oracle will not wait to lock the given Table(s), if the Table(s) is(are) not
available
------解决方案--------------------
可以在for update 后面加上 wait 10, 就是等待10秒后如果锁定行的那个用户没有提交或回滚,将自动释放资源