比如有id这个字段,想实现在新输入一条记录时自动加1,而且是唯一的,那么我要选出最大的数,然后将其加1,这样就可以保证号码加1而不重复,请问怎么选出最大输的记录,谢谢!!
2。如果我用系统自带的id自动加1规则,那么比如有5条记录,我删除第3条记录,再添加一条新记录,他的号是6,中间的3号将永远不能输入,存在断号,如何实现id重新连续排列?谢谢

解决方案 »

  1.   

    1、SQL SERVER和Access 
    数据库都具备这些功能
      

  2.   

    1 用子增长字段或者用select id = max(id) + 1 from table就能做到
    2 可以实现,不过这样是完全没有意义的,而且效率很低强烈建议不要,你可以用select语句或者查询实现这样的功能
      

  3.   

    SQL:Select Count(*) as TableCount From ....
      

  4.   

    有办法实现断号连接的问题吗,比如说有10条记录,设置id字段主键,自动加1,那么第10条记录肯定是10,这时手动删除第3号记录,这样3号记录将不能输入,再添加记录自然是11号,这样3号记录就出现断号,我的意思是如何在删除后,数据可以自己重新排列id号,再次添加记录是10号,所有3号以后的记录id号都向前提一位,实现正常顺序的id号.
    例如:原来id号: 1.2.3.4.5...10
         删除3号后:1.2.4.5..10
         添加记录: 1.2.4.5 ..10.11-->11是自动生成的新记录号   
    我要实现如何重排: 1.2.3.4..10-->10是自动生成的新记录号,所有记录都重排
    另外再问一下:如果不重排,将新记录填充为删除的3号id又如何做?
    谢谢!
      

  5.   

    Update Table set id=id-1 where id>3
      

  6.   

    select max(id)的方法与使用自动增加字段没有什么区别。如果是偶,偶会考虑增加一个表格专门回收删除的ID号,在Insert时首先从回收站中取ID,没有了才从Select Max中取。这一点通过触发器来实现。
    需要指出的是:这种方式违背数据库设计原理。这个字段最好不好成为Primary Key,但可以用它作Order。