Arvin_ghost
Arvin_ghost
采纳率52.2%
2015-08-12 13:28 阅读 2.5k

sql 如何设置一列id为连续的自然数

即删除中间记录时,这一列仍能连续,比如12345行,删除第三行,记录变为1234,
这样如何实现?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    devmiao devmiao 2015-08-12 13:32

    没有必要要这么一列,直接在查询的时候根据某个条件(比如插入时间排序),然后产生行号就可以了。

    点赞 1 评论 复制链接分享
  • devmiao devmiao 2015-08-12 13:32
  • devmiao devmiao 2015-08-12 13:53

    非要那么做,可以用
    update xxx set id=(select max(id) from xxx)+1

    点赞 1 评论 复制链接分享
  • devmiao devmiao 2015-08-12 13:54

    非要那么做,可以用
    insert into xxx set id=(select max(id) from xxx)+1

    点赞 1 评论 复制链接分享
  • qq_19865749 Liekkas_BX 2015-08-12 13:41

    该列应该定义为整形,定义时你可以设置其为自增长的,并且作为主码,例如:ID int auto_incream primary key,好多数据库都支持anto_increment(自增长)的。

    点赞 评论 复制链接分享
  • tongyi55555 JonsonJiao 2015-08-12 22:11

    我的想法是为该表增加一个删除触发器,删除后更新ID

    点赞 评论 复制链接分享
  • beacon_2011 beaconD 2015-08-13 01:36

    select max(id) from table

    点赞 评论 复制链接分享
  • u014763172 猜个 2015-08-13 01:57

    没必要这么做啊,列表你应该是展示在jsp上吧,从控制器取出来数据时,在页面如果使用遍历的话把count指定为行号就可以了,
    当你删除后刷新列表,就自动变了,还不用操作数据库,节省性能

    点赞 评论 复制链接分享

相关推荐