不确定这是否可行,我可能会误解序列......
我有一个SQL脚本,它将数据添加到oracle中的表中。每个表都有一个主键,它是通过序列生成的。
我正在打电话
MY_SEQ.NEXTVAL
获取下一个序列值。
现在我遇到了一个问题,在DB中添加了一些未通过序列添加的行。通过SQL脚本手动添加ID。这意味着当我的
MY_SEQ.NEXTVAL
运行失败,因为它生成了一个已经用作主键的序列号。
有没有办法协调oracle中的序列和当前数据库中的id?目前我不得不在开始时检查哪个不理想。我希望所有表都与序列一起使用。我可以让序列考虑现有的ID吗?
有什么想法吗?这可能吗?
由于
答案 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>;