问题描述
- sql 如何设置一列id为连续的自然数
-
即删除中间记录时,这一列仍能连续,比如12345行,删除第三行,记录变为1234,
这样如何实现?
解决方案
没有必要要这么一列,直接在查询的时候根据某个条件(比如插入时间排序),然后产生行号就可以了。
解决方案二:
http://www.cnblogs.com/xinlei/archive/2011/12/16/2290349.html
解决方案三:
非要那么做,可以用
update xxx set id=(select max(id) from xxx)+1
解决方案四:
非要那么做,可以用
insert into xxx set id=(select max(id) from xxx)+1
解决方案五:
该列应该定义为整形,定义时你可以设置其为自增长的,并且作为主码,例如:ID int auto_incream primary key,好多数据库都支持anto_increment(自增长)的。
解决方案六:
我的想法是为该表增加一个删除触发器,删除后更新ID
解决方案七:
select max(id) from table
解决方案八:
没必要这么做啊,列表你应该是展示在jsp上吧,从控制器取出来数据时,在页面如果使用遍历的话把count指定为行号就可以了,
当你删除后刷新列表,就自动变了,还不用操作数据库,节省性能
时间: 2024-09-12 04:32:04