不知道你的这个PK_ID是如何生成的,在oracle即使使用序列,如果不删除数据可以何证ID是连续的,但是当有数据删除时,序列就会断续,而且被删除的的ID值,序列是不会发现也不会回收使用的。
如果你是在应用程序中计算PK_ID,那么可以查到最大的ID值,然后加1,要考虑并发时ID重复问题,需要锁表,锁表影响数据库性能。
建议使用序列,序列的初始值等于现有最大值+1,每次自增1
如果你是在应用程序中计算PK_ID,那么可以查到最大的ID值,然后加1,要考虑并发时ID重复问题,需要锁表,锁表影响数据库性能。
建议使用序列,序列的初始值等于现有最大值+1,每次自增1
解决方案 »
- SQL问题
- oracle 双机启动不了,修改成单机,如何修改?急
- 问条sql,一条sql语句分别统计出来两张表的数据。详细看内容
- 如何在 Oracle Apex 中制作上传文件 的网页呢?
- oracle里面序号的问题
- oracle备份文件(DMP文件),误删除了(删除到回收站),怎样恢复出来.
- 急,数据恢复!
- ORACLE配置问题,我换了安装路径
- 创建用户
- ORA-07445: 出现异常错误: 核心转储 [psdsbaa()+1944] [SIGSEGV] [ADDR:0x14] [PC:0x10A3D25D8]
- 关于筛选每天距八点时间最近数据的问题
- Toad for oracle 导数报错了
数据是否排序,按什么来排序。是由你的select语句来控制的create sequence student_id
2 minvalue 1 --最小值
3 nomaxvalue --不设置最大值(由机器决定),或 根据表字段的值范围设置 maxvalue
4 maxvalue 999 -- 最大值
5 start with 1 --从1开始计数,数值可变
6 increment by 1 --每次加1,数值可变
7 nocycle --一直累加,不循环;cycle:达到最大值后,将从头开始累加
8 nocache; --不建缓冲区。 如果建立cache那么系统将自动读取cache值个seq,这样会加快运行速度;如果在单机中使用cache,或者oracle死了,那么下次读取的seq值将不连贯,所以不建议使用cache。