或许可以先update a=a
select *
commit

解决方案 »

  1.   

    我是想select时锁住表,取出纪录后在解锁。有什么方法?
      

  2.   

    下面有个例子:
    String query = null;
    ResultSet r = null;
    String tablename = XXX;//table's name;
    try {
         Statement s = conn.createStatement();
         query = "lock tables " + tablename + " write";
         r = s.executeQuery(query);
         query = "select max(id) from " + tablename;
         r = s.executeQuery(query);
         if (r.next()){
             ......
         }
         query = "unlock tables";
         r = s.executeQuery(query);
         r.close();
         s.close();
    }catch (SQLException e)
    {
          System.out.println ("SQL error:" + e);
          return "e";
    }
      

  3.   

    在你的 更改sql 语句后加for update 就可以了
      

  4.   

    你只是select数据,有必要加锁吗??
      

  5.   

    sql 语句后加for updat nowait
      

  6.   

    同时select表Table1,Table2,需要把Table1锁住,然后再解锁。Statement rs = conn.createStatement();
    Statement rs1 = conn.createStatement();
    rs.executeQuery("select * from Table1,Table2");//Table1需锁住,Table2不锁
    while(rs.next()) 
    {
         rs1.executeQuery("select * from Table2 where ...");
      ...
    }
    rs.close();
    update Table1...;
    解锁Table1...打楷就这样,该如何锁住表Table1?
      

  7.   

    Yes. set TransactionIsolution.
    @see javadoc api : java.sql.Connection