例如单号:
abc-01
abc-02
abc-03
入单,后边就不断加1
请问多线程是否要锁表才可以,避免单号重复吗?用innodb的行锁好吗?性能方面快不快?请教一下方法

解决方案 »

  1.   

    狼哥,我想问下,for update 如何在commit前解锁
      

  2.   

    但是,我想取唯一单号
    这个键值是唯一的
    ABC-01
    ABC-02
    BED-01
    BED-02
    ABC-03
    BED-03
    ABC-04
    ABC-05
    我插入BED的时候,我要获取BED的最大值,然后加一,问题是多线程的时候,同时有其他人获取BED的最大值,请问怎么设置?
      

  3.   

    建议把你的这个字段拆成两个字段即可。create table xxxx (
      gid char(3),
      id   int auto_increment,
     ...
     primary key (gid,id)
    );查询的时候把 concat(gid,mid(100+id,2)) 即可。这样就不需要担心什么并发锁之类的了。