在oracle中删除id后id就不再连续了

问题描述

如何在oracle中删除id后 再次让id连续比如我删除了id为1,3,5的数据后再次查询 id就不再试从1开始了,而是从2请教各位 如何做到 问题补充:redstarofsleep 写道

解决方案

id是一个唯一值,最好的处理方式就是一次写入永不更改。你的改动会带来级联效应,系统中所有涉及到这个表的外键都要更改。而你改动了这个值有什么好处呢?你这个改动就像一个城市的车牌因为其中一个号码报废了,所有的后续车牌都要递减一个号码一样。有意义么?
解决方案二:
明白你的意思了,你就是想让ID永远都连续。这个应该不能自动完成,要你手动去做了。但是你这样做有什么意思呢?
解决方案三:
那不是说 你每删除一个数据,这个列表的ID都要通过某个操作来更新一把ID?如果这个ID是某个表的外键,那部是代表着,删除这个ID同时要对多个表的关联值进行改变?如果删除动作频繁,这样做好吗?
解决方案四:
前两天刚回答了一个同样的问题,这么做是不好的……
解决方案五:
引用我是想说 当你删除1,3,5之后在查询的时候id 还是按照1,2,3,4,5这样排序而不是2,4,6,7,8,9还是不明白你说什么。。。。。什么叫删除了1,3,5还是按1,2,3,4,排序。。。1不是删掉了么?
解决方案六:
引用比如我删除了id为1,3,5的数据后再次查询 id就不再试从1开始了,而是从2 你把1删掉了,查询从2开始有什么问题嘛???????你是不是想问插入数据啊?1,2,3,4,5把5这条记录删掉了,再插入一条ID是6。这种情况是因为ID交给secquence管理,secquence只增不减。

时间: 2024-08-04 05:49:13

在oracle中删除id后id就不再连续了的相关文章

Oracle中删除用户和表空间的常见问题(比如:ORA-01940无法删除当前已连接用户的解决方案)

这时候以管理员身份进入sqlplus命令窗口. 在删除用户的时候有时候会出现以下问题: ORA-01940无法删除当前已连接用户 这时候的解决方案是: 1)查看用户的连接状况   select username,sid,serial# from v$session (2)找到要删除用户的sid,和serial,并删除 例如:你要删除用户'WUZHQ',可以这样做: alter system kill session'532,4562'; 这里的532表示的是sid,4562表示的是seria.

警惕:Oracle中删除的分区不会进入回收站(Recyclebin)

最近在『云和恩墨大讲堂』的微信群讨论中,有朋友提到分区的删除和闪回问题,我注意到很多人可能忽略了这个问题. 在Oracle数据库中,单个删除的分区并不会进入回收站,全表删除的分区才可能和全表一起放入回收站.这是因为单个分区删除之后,是无法通过简单的闪回加入原分区表中,既然无法保证一致性,这个分区就不会进入回收站中. 以下这个测试展示了这个过程: SQL> select * from v$version; BANNER ---------------------------------------

Oracle中删除用户遇到的问题

我新建了一个用户xy,并导入了一些表,序列,存储过程在其中.现在我用删除该用户   出现问题 执行drop user xy,报错ORA-01922: 必须指定 CASCADE 以删除 'XY' 问题原因 CASCADE众所周知是级联的意思,说明删除该用户要先删除与之相关或者级联的信息   解决办法 drop user xy cascade  

oracle中误删除表后恢复语句(FLASHBACK)_oracle

复制代码 代码如下: select * from dba_recyclebin; select * from user_recyclebin; FLASHBACK TABLE CF_IMPORT_RULE TO BEFORE DROP; FLASHBACK COMPLETE

在Oracle中如何删除表中设计重复数据

oracle|设计|数据|重复 我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一.对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧. 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 将上面的>号改为=号就可以查询

oracle-Oracle中varchar2类型的id为自动增长

问题描述 Oracle中varchar2类型的id为自动增长 Oracle中id的类型为varchar2(10)主键,怎样创建自动增长的id 解决方案 可以的,使用序列 创建序列 create sequence SEQ_CEID minvalue 1 maxvalue 9999999999 start with 41 increment by 1 cache 20; 创建表,插入,查询 create table table_f ( id varchar(10) primary key, name

oracle sql-oracle 中 group by 后给出的数据的排序问题

问题描述 oracle 中 group by 后给出的数据的排序问题 在group by之后查出的数据,是按照什么顺序给出的? 表中没有设置主键,不是用order by 排序,而是分组后查询出来的数据以什么原则优先的顺序输出 解决方案 应该默认是按照插入的顺序的,这里自己来设置顺序 解决方案二: group by 會對數據排序嗎Oracle Group By 用法之 -- HavingOracle数据分组:group by,having,rollup,cube,grouping sets

oracle中如何为用户授权

oracle 给用户授权_oracle 用户授权_oracle用户授权 grant(授权)命令 下面对创建的用户user01授权,命令如下: grant connect, resource to user01; (2)revoke(撤消)权限 已授予的权限可以撤消.例如撤消(1)中的授权,命令如下: revoke connect, resource from user01; 一个具有dba角色的用户可以撤消任何别的用户甚至别的dba的connect.resource 和dba的其他权限.当然,这

oracle怎么删除用户提供解决方案_oracle

在Oracle中删除用户时提示:ORACLE无法删除当前连接用户可以用以下语句 Sql代码 SQL> 复制代码 代码如下: select username,sid,serial# from v$session; USERNAME SID SERIAL# ------------------------------ ---------- ---------- 1 1 2 1 3 1 4 1 5 1 6 1 7 1 SYS 8 3 A 9 4 已选择9行. SQL> 复制代码 代码如下: alte