添加自动递增和自动递减列在Oracle 10g(Add auto increment and aut

2019-10-17 05:54发布

我想补充到Oracle数据库中的列其插入record.And删除record.This字段用于存储中的表头的序列号时,它应该自动递减后自动递增和标题应该能够重新因此阶,不应该有数量sequence.I之间没有任何间隙,以触发和SEQUENCE尝试,但它并没有work.Are有什么办法可以使用PL / SQL来this.Actually我想要的是转移序列号删除记录时。

例如:第1行,第2行,第3行,第4行,第5行,如果我们删除行3,序列应是行1,行2,行3,行4和这是在ROW4应该来记录到行3等上..

我使用的JSP,servlet的technology.If有没有办法通过使用Java的也是很好的做到这一点。

谢谢!

Answer 1:

没有; 有没有简单的方法。

不管你做的序列,他们将永远不会生成数字的无间隙序列 ,一个完美的1,2 ... N。 即使他们有没有重新生成一个序列的整个表自动方式,或设置表中的行,无需重新生成它从头开始。 只是,如果你删除一行3把,你需要有一个序列号大于3。这显然是荒谬的,更新的所有记录。

我不明白你为什么要做到这一点,但是,假设你做我的“答案”将不会将此信息在你的表存储在所有。 对于那些需要此列的查询使用解析函数生成它在飞行row_number() 例如:

select column1, column2, row_number() over ( order by <whatever> ) as my_sequence
  from my_table

这种分配一个唯一的编号,以在给定的顺序每行ORDER BY子句。

你也可以把这个视图中的,所以你甚至不需要记住把它放在查询和您确信它已经在完全相同的方式都会产生。



文章来源: Add auto increment and auto decrement column in oracle 10g