如果数据库支持序列(例如Oracle)则直接使用数据库的序列即可,每次从数据库中 Select seq.nextval() 即可取下一个序号。如果数据库不支持序列,则建立序列表,seq (lock char(1), val number(10)), 每次 update seq set lock=1 where lock=0; select val from seq
即可取得当前序号,然后 update seq set val = val+1, lock =0。 lock 字段用于在多用户环境下进行共享锁,如果没有多用户,则不需要锁定