ID 号是自动生成的,我原来的方法是按ID号排序,然后移动到最后一条记录,但是我觉得可能会有这种情况发生,就是因为有很多人同时操作同一个表,如果有两个人同时点插入,那么就会有一个人插入的记录ID号不是他自已最后插的那条而是别人插入的,那么这样获取到的ID 就是误的ID了.问下大家会不会有这种情况发生,还有都用什么方法获取的啊!

解决方案 »

  1.   

    一般这种表中都会有插入这ID(InserUserID) 可以根据Max(ID)和InserUserID 来进行判断。
      

  2.   

    一般这种表中都会有插入者ID(InserUserID) 可以根据Max(ID)和InserUserID 来进行判断
      

  3.   

    LS说的所有方法都解决不了LZ的问题。因为LZ问的不是新插入记录的ID,而是实时最大ID。
      

  4.   

    换一句话说,得到ID必须和接下来的操作是原子操作。之间不能发生别的操作。所以这个只能在数据库层面实现。而自动增长就是为了这个而设计的。因为比较ID和产生新的ID完全由数据库接管了。
      

  5.   


    最后一条是别人插入的,取到的ID是错误的ID
    楼主要的是他自己插入的最大ID,并不是实时最大ID
      

  6.   

    这个问题似乎不是问题吧,要取自己新插入的id值,只要在update后就能取到了啊,我经常这么做没遇到什么问题啊。
      

  7.   

    不行就用事务begin transaction
    insert into table() values()
    select max(ID) from table
    commit transaction下面取记录ID就行了
      

  8.   

    7楼的说法没错。
    只有插入的记录有客户端或用户区分,那么以此做条件取得的 MAX(ID) 就是刚才自己插入记录的 ID。
      

  9.   

    加一个userID字段
    select max(id) from 表a where userid=操作员ID
    就是你要的了.
      

  10.   

    我的做法:除ID外应该还有一个关键字,通过那个关键字来取ID可行性强很多,特别是在多用户情况下更是如此。