MYSQL自己会处理插入的进程,不用你自己担心。
插入前先用MAX取出该字段的最大值,加一之后插入即可。

解决方案 »

  1.   

    如果是从数据库取得最大值(max(value))然后加1,这样当同时取值加1 的时候就会出现重复。
      

  2.   

    避免同时插入这是个数据库问题,而不是PHP的问题.
    你想想,asp有没有这样的问题,jsp呢,VC呢,DELPHI呢,PB呢?
    这种问题和编程语言及工具无关,只与数据库有关.
      

  3.   

    mysql不支持事务,如果用加锁,加锁后是不是还可以读?那样还是不可避免的取到同一个最大值,加一后,还是会有这个问题吧?想过用加锁这个方法,就是想到担心还是取到同一个最大值,虽然锁定了写的进程,但一个解锁后,另外一个提交,是不是还是一个值呢?
      

  4.   

    lock tables yourtable write
      

  5.   

    mysql不支持事务????????????
    是真的,不會吧,我要找書看看!!!
      

  6.   

    如果你是要简单的加一的话,可以这样(例如有一个数据库其中有字段‘num’)
    update tablename set num=num+1;
    这样好像能解决一点问题!您试试?
      

  7.   

    其实,这个问题几乎是所有B/S结构都会发生的问题。我们首先分析其本质,才能真正解决问题。出现这种情况,主要是当同一时间出现同操对数据库的操作,而产生的bug。所以这是数据库的问题,而不是语言的问题。MySQL在3.XX版本里,是不支持事务操作。这的确是真的。
    而在4.X版,就可始支持,但在PHP没有这样的操作。所以根本的解决方法,就是加锁,令同一时间只有单进程读写。还有一个问题,就是我曾经在国外看到一些资料,MySQL的流水号是可以自设开始值的。所在,你也可能用唯一处理。