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

解决方案 »

  1.   

    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
      

  2.   

    commit 或rollback 不是提交和回滚吗,好像只是对缓存在内存中的命令的操作吧
    gdinsix408j() 这位兄弟,你这好像是把整个表锁起来吧,虽然有各种模式
    难道我想对某条数据进行锁定不能用select * from table_name where id=1 for update
    这种模式吗,
    还有就是定时解除锁定到底怎么弄啊?
      

  3.   

    Paladin_china(大仙),tgm78(shop34161266.taobao.com),你们的说法没错,是我没搞清楚
    定时解锁难道要通过外部程序控制吗?
      

  4.   

    可以在for update 后面加上 wait 10, 就是等待10秒后如果锁定行的那个用户没有提交或回滚,将自动释放资源