我的ACCESS数据库有一张表,表里有一个卡号字段cardid是6位字符,表里已有很多记录,我现在想生成一个卡号跟cardid字段里的不重复,该怎么做??????难道从000000到999999一个一个用SQL查询直到不重复为止吗?那里面有1万条记录不就有可能查1万遍吗?各位高手这种情况你们是怎么做的????我不想按顺序发卡号,然后用注册表来记住卡号,因为有可能注销前面的卡号,要重复使用。

解决方案 »

  1.   

    将cardid设置为索引,并将其属性“有(无重复)“设置为无重复即可
      

  2.   

    建议:
    找到表中cardid字段的最大值,然后新值取最大值加一。
      

  3.   

    有没有更好的方法啊,
    我要自动生成一个不重复的号码给用户参考,他可以用我生成的号码,也可以自己输入,如果输入的跟库里的重复,我会提示他重输,关键是怎么生成不重复的号码,
    上面那位兄弟说找到表中cardid字段的最大值,然后新值取最大值加一,但这样以前注销的号码不就用不了了吗?
      

  4.   

    1、把随机数生成的号码和用户输入的号码先到数据库中检索一遍,看看有没有重复的,如:select count(*) from card where cardid='随机生成的号码或用户输入的号码',看它是否为0,如为零,则说明没有重复的,可以入库了!如果不为0,说明有重复的,提示重新输入或再次随机生成!
      

  5.   


    okin网友,我知道只有这个方法。我就是不想用这个方法,因为如果我的库里有2万条记录,那就有可能检索2万次才能找到不重复的,那会很慢。