Oracle序列问题 Oracle里做了一个序列,目的是想实现其自动增加,但是当我将表中的记录删除后,发现序列值并不能从1开始增加,而是其他的无序的数字,怎样实现使用该序列的字段值按如下要求增长:序列值从1开始增长,当表中序列值1被删除时,其他的序列值能自动变成1,比如原来是2的,变成1;原来是3的成为2…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 oracle的序列是不能这样做的;为何已经使用ID又被重新利用?一般情况下一个ID已经使用过,就不要再用了; 单一个序列是不能解决你这个问题你还必须写一个触发器,当删除记录激发这个触发器触发器完成如下操作:1.update tablename set 序号=序号-1 where 序号>你删除的序号2.把序列的下一个值减1,这一步具体我就不知了 oracle的序列是不能这样的,nextval后,就会一直增长,不会因为你删除了一列而利用,而且也没有什么必要 序列是不能这样实现的,nextval是递增,递增大家都明白...除非你不用序列,需使用触发器完成你递增任务,在每次删除一序列ID时,必须更新表中大部分序列号...虽然从这个可以实现,但是最不必要的.. 在你对表进行删除操作时,同时维护一下你的序列 dba_sequences update user_sequencesset last_number=(select count(0) from table_name)+1 where sequence_name = '序列名'; 求一SQL语句。 我想在 oracle 中查找 在 2006-7-10 到 2007-7-71 间信息怎么写??(求助) 求组一条SQL语句写法!!!急,在线等!!! oracle10g安装有问题 如何测试存储过程呢? 怎么在oracle备份中,恢复某一张表的内容? 问个函数2 请教一个问题??? 软件创意, 功能是否可以得到保护 在NLS_LANG=WE8ISO8859P1,数据库字符集为UTF16的环境下用Oralce OLEDB操作汉字的朋友吗? 请教各位一个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 = '序列名';