sql 自增列删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 自增列删除相关的知识,希望对你有一定的参考价值。

一个自增列,比如有记录1,2,3,4
如果删除掉重新插入值会从5开始,有没有特殊的办法来解决,比如删除4,再插入的时候会从4开始

当你插入的时候,自增列的数据可以用SQL语句获得,比如你插入的时候自增列插入的数为:
declare @add int
select @add=count(*)+1 from 表名
insert into 表名(自增列) values(@add)
这样就可以了!
参考技术A SQL不要设置自增列 你可以这样 每次插入的时候 查询一下最后一个列的数值 然后把它+1 然后插入 参考技术B 这个用自增列不行,要想实现你说的不间断序列号只能单独编写个方法
插入的时候递增1,删除的时候递减1
参考技术C 曾经也遇到这个问题,没有解决诶 同求 我是这么想的 设置一个触发器 然后找到当前最大的数 然后在此基础上自增 后来没时间也就没试了 求高手指导 参考技术D 再插入只会一直增加下去的,不会从4 开始

oracle 在SQL中制作一列自增列

我的表里没有自增列,但是我需要在查询中显示一列自增列,该怎样做
select ??? from 中间改怎样写??

可以通过sequence来实现,每次递增一即可。
create sequence SEQ_ID
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 30
cycle;
之后执行:
insert into tab (auto_id) values (SEQ_ID.Nextval);
备注:sequence 是一个自增长的序列,每次调用nextval的时候会自动增加,可以定义起始值,最大值,增量,cycle是表示循环,即到最大值后从起始值重新开始。 每次执行都是会自增的。
参考技术A 1 有 rownum啊! 不用白不用
2 可以用rowid 这个可是唯一的值
select rowid,rownum .... from ...本回答被提问者和网友采纳
参考技术B 1、建立一个自增sequences
2、表建了触发器 当插入时调用 select seq.next into 变量 from dual 自增列 存入 变量 就ok了追问

没有列名,只是在查询时用一个临时列名,用来显示自增

追答

这不叫自增列 rownum是oracle的虚列 可以使用 但是不能在程序中按序号取用 比如要num是10的 其实是取不到的 rowid 数据库里存的根本没法在应用中用 得组合其他东西用

参考技术C 思想:
1 创建序列
2 select 序列名.nextval from XXX; 可以在from前面加上其他的列名

创建序列方法
create sequence tmp_seq
maxvalue 10000
minvalue 1
start with 1
increment by 1
cache 10
order;

显示自增列
select tmp_seq.nextval from XXX;

以上是关于sql 自增列删除的主要内容,如果未能解决你的问题,请参考以下文章

sql中自增列 id,删除其中一个 ,如何查找被删除的行??

SQL语句实现取消自增列属性

SQL Server查询时添加一列连续的自增列

SQL Server Identity自增列设置为重新从1开始

sql的自增列如何重置

oracle 在SQL中制作一列自增列