我在存储过程里实现对一个表的存取,当我存取时想锁定这个表,防止其它用户再存取,操作完毕后再解锁,我该怎么办,谢谢!

解决方案 »

  1.   

    select col_name from table_name where col_name='xxxx' for update;
    这样可以锁定这些行了   能防止别人同时更新这些行  但不能防止别人 select
      

  2.   

    for update是二级锁,能够保证select过程的正确进行。但是别人此时提交的删除事务仍然能够实现删除功能,是由系统在你select结束后进行的。
      

  3.   

    用   l2g32003(T2-X) 网友的方法
      

  4.   

    我用select col_name from table_name where col_name='xxxx' for update; 锁定这些行后,我自己还能修改吗,我想取出某一行的某个字段后,然后再更新这个字段,用这个也可以吗?
      

  5.   

    直接lock,不过没有必要不要独占