0

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

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

我目前正在打电话

MY_SEQ.NEXTVAL

获取下一个序列值。

现在我之前遇到了一个问题,其中一些行已添加到数据库中,而这些行不是通过序列添加的。ID 是通过 SQL 脚本手动添加的。这意味着当我

MY_SEQ.NEXTVAL

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

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

有任何想法吗?这可能吗?

谢谢

4

1 回答 1

2

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

select max(id) from your_table;

alter sequence my_seq increament by <the amount to go beyond your max ID>;
于 2013-03-11T10:07:05.280 回答