sql 表的主键是自增序列,假如根据id删除一条语句

[复制链接]
查看11 | 回复3 | 2011-6-7 10:12:22 | 显示全部楼层 |阅读模式
在SQL server数据库中 一个表的主键是自增序列,假如根据id删除一条语句.
(这样的话感觉序列不连续) 然后再插入一条语句,要求插入的这条语句插入到删除那条语句的id位置?
或者是此id之后的id号都同时减1?
比如
person 表:
id        name        age
1        张飒        19
2        李思        20
3        王武        18
4        赵柳        22
5        孙二        21
比如现在我删除id = 3的数据,则变为:
id        name        age
1        张飒        19
2        李思        20
4        赵柳        22
5        孙二        21
第一种情况: 当我插入一条新的数据时候,把它补充到第三条(即id=3),如果再插入数据,则使其id从5后面递增
id        name        age
1        张飒        19
2        李思        20
3        倩儿        17        --插入的第一条
4        赵柳        22
5        孙二        21
6        吴俊        22        --插入的第二条
第二种情况: 当我删除id=3的数据的时候,能不能使其后面的id号都同时减1
id        name        age
1        张飒        19
2        李思        20
3        赵柳        22
4        孙二        21
5        倩儿        17        --插入的第一条
这两种情况能实现吗?如果能,该怎么实现?

回复

使用道具 举报

千问 | 2011-6-7 10:12:22 | 显示全部楼层
只要是标识列都不能实现!如要实现以上的方法,建议采用自定义增量的方式!就是通过触发器来判断,同时新增一张表,来记录ID的使用情况。...
回复

使用道具 举报

千问 | 2011-6-7 10:12:22 | 显示全部楼层
假设删掉id=5的那一条数据 你再插入数据是不会出现5的记录了 会是表里面 最大ID号 + 1...
回复

使用道具 举报

千问 | 2011-6-7 10:12:22 | 显示全部楼层
不太好实现,毕竟涉及到还要修改sequence,在建表的时候为什么不把自增字段独立出来,而且一般在数据库中是要杜绝修改自增字段的,建议新增一字段,来做为序号...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行