获取未通过Oracle中的序列插入的ID

时间:2013-03-11 09:49:55

标签: sql oracle oracle10g primary-key

不确定这是否可行,我可能会误解序列......

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

我正在打电话

MY_SEQ.NEXTVAL

获取下一个序列值。

现在我遇到了一个问题,在DB中添加了一些未通过序列添加的行。通过SQL脚本手动添加ID。这意味着当我的

MY_SEQ.NEXTVAL

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

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

有什么想法吗?这可能吗?

由于

1 个答案:

答案 0 :(得分:2)

您可以更改序列,使nextval高于表中的max id:

select max(id) from your_table;

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