user表 id name 字段 name可重复 id不可现在假如id最后一条是10
3个或多个用户同时注册 那么怎么使注册后的结果id 是11 12 13 而不都是11 现在因为他们先查询user表时id 都是10  而得出最近不存在的id 记录都是11  怎么解决呢

解决方案 »

  1.   

    你的id不是自动增长的吗
    如果不是也不会都是11吧
    你不是在保存的时候取出最大id加1吗
      

  2.   

    真不知道你怎么会这样写,你应该写触发器,而不应该查询出ID然后再ID=ID+1,这个过程不能在程序里边出现,应该把它放到数据库里边处理
      

  3.   

    你的id在数据库中是怎么设计的如果是自增长的就不用考虑这个问题,数据库会完成该任务或者你可以使用GUID
      

  4.   

    说你仔细不号意思user表  id 流水号  自增
             userid  用户id    结果要求 huy081022-1
            username  用户名   我说的id 就是userid  想2 3 楼说的 怎么在数据库里设置自增呢
      

  5.   

    使用hibernate时,在hibernate配置文件中设置主键自增  increment
      

  6.   

    4L 说的可以 但是 整个项目没有使用HIB现在不想更改框架结构 怎么解决比较好
      

  7.   

    数据库是access id 我设置的是 文本 格式3 或7 L 的能说具体怎么做吗
      

  8.   

    GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。但是我的userid  由具体要求 就是huy081022-1如果是当天就变化最一个数字
    如果不是当天 就是081022  也要随时间变化  用GUID 怎么做呢
      

  9.   

    insert into user(userid,username) vlaue((select max(userid) + 1 from user),"KK")
      

  10.   

    user表里  userid 是 text格式的  insert into user(userid,username) vlaue((select max(userid) + 1 from user),"KK")怎么加1 ?
      

  11.   

    每次操作前读一次数据库,获取最大的id号,加1作为下次插入的id
      

  12.   

    让它同步不就可以了
    在方法上加个synchronized
      

  13.   

    asp可以防止,用时间的毫秒分割注册的时间
      

  14.   

              SimpleDateFormat   smpDateFormat   =   new   SimpleDateFormat("′现在时间:′G   yyyy-MM-dd   E   a   hh:mm:ss"); 
    绝对不可能有那么寸的时间,这几个人注册的时间聊毫秒都一样
      

  15.   

    ok  按14L 的朋友 方法 问题已经解决  分已给了 
    同时也谢谢大家