2017-06-23 49 views
0

我可以更新现有的序列值构成1从1开始更新现有序列值?

盯着例子:在表中的一个顺序列开始的序列形式5001,但我想改变这种价值的形式从1开始

如果可能的话怎么能进场?

+0

[如何在Oracle上使用AUTO \ _INCREMENT创建ID?](https://stackoverflow.com/questions/11296361/how-to-create-id-with-auto-increment-on-oracle) –

+0

可能的重复[如何在Oracle中重置序列?](https://stackoverflow.com/questions/51470/how-do-i-reset-a-sequence-in-oracle) – trincot

+0

你打算如何当你的序列产生你已经在表格中的值时处理它(例如5001)?或者你的意思是你想更新该列中的所有现有值,这与[Oracle序列]无关(http://docs.oracle.com/database/121/CNCPT/schemaob.htm#CNCPT88878)? (在这种情况下...列是一个主键?如果这些都是合成的无论如何为什么更新?) –

回答

0

我认为你最简单的方法是删除表并重新加载。在重新加载之前指定一个主键。这将防止重复插入。

0

您可以使用ALTER SEQUENCE更改序列起始值。但是,将起点设置回来会导致与表中现有的值发生冲突。此外,NuoDB不一定按顺序分发序列号。考虑到它是一个分布式数据库,序列号发生器会极大地影响性能,因为每个TE都需要检查某个主机是否有下一个序列号。 NuoDB所做的是派发一个TE使用的序列块,然后在其用完时请求另一个块。如果TE关闭并重新启动,它将得到一个新的块。