2013-03-11 79 views
0

不知道这是可能的,我可以在这里误解序列通过序列插入获取的ID ...对于未在甲骨文

我有一个是Oracle将数据添加到一个表中的SQL脚本。每个表都有一个通过序列生成的主键。

我现在打电话

MY_SEQ.NEXTVAL 

得到兴田一个序列值。

现在我有一个问题,早些时候在DB中添加了一些行,这些行没有通过序列添加。这些ID是通过SQL脚本手动添加的。这意味着当我的

MY_SEQ.NEXTVAL 

运行失败,因为它产生了一个已经被用作主键的序列号。

有没有一种方法来协调oracle中的序列和当前在数据库中的id?目前我不得不在开始时检查哪个不理想。我希望所有的表格都能和序列一起使用。我可以获得序列来考虑现有的ID吗?

任何想法?这可能吗?

感谢

回答

2

您可以更改序列具有较高的NEXTVAL然后在表格中的最大ID:

select max(id) from your_table; 

alter sequence my_seq increament by <the amount to go beyond your max ID>;