Oracle里做了一个序列,目的是想实现其自动增加,但是当我将表中的记录删除后,发现序列值并不能从1开始增加,而是其他的无序的数字,怎样实现使用该序列的字段值按如下要求增长:
序列值从1开始增长,当表中序列值1被删除时,其他的序列值能自动变成1,比如原来是2的,变成1;原来是3的成为2……
序列值从1开始增长,当表中序列值1被删除时,其他的序列值能自动变成1,比如原来是2的,变成1;原来是3的成为2……
解决方案 »
- oracle时间查询
- ORACLE监听程序开不起来 telnet 10.119.119.119 1521 打开1521失败
- 往oracle10g自己的数据库中导入别人的DMP文件时,提示导入文件目录不存在????
- 安装9i的时候,出现的wenti
- 有存储过程经验请进~~可以迭代否?
- SQL在客户端慢的问题
- oracle 客户端连接时通时不通 在线求救
- 在线求教,字段结构为 pack VARCHAR2(3)插入 String类型的字符 "HBbd",为什么插入出错??
- 我想使用oracle+php来建立一个电子商务的站点,需要人手帮忙!
- 在oracle存储过程中如何创建触发器?
- 请教各位一个oracle 触发器的问题.
- oracle 10G有关存储规划的问题
一般情况下一个ID已经使用过,就不要再用了;
你还必须写一个触发器,当删除记录激发这个触发器
触发器完成如下操作:
1.update tablename set 序号=序号-1 where 序号>你删除的序号
2.把序列的下一个值减1,这一步具体我就不知了
除非你不用序列,需使用触发器完成你递增任务,在每次删除一序列ID时,必须更新表中大部分序列号...
虽然从这个可以实现,但是最不必要的..
update user_sequencesset last_number=(select count(0) from table_name)+1 where sequence_name = '序列名';