向Oracle数据库导入自增长的数据,保证序列同时增长

版权声明:知识共享 https://blog.csdn.net/liyaowen505/article/details/83537208

数据库有表A,同时也创建了序列A_SQ,当前序列值是10。
A表 的id是靠序列自增长的,直接SQL导入数据的时候要设置id的。
比如:INSERT INTO A VALUES(11,'zhangsan')
但是直接设置id值的话序列并不会增长为11的,记得MySQL是可以的吧。Oracle要触发序列才会增长。
可以将语句改为:INSERT INTO A VALUES(A_SQ.NEXTVAL,'zhangsan')
这样就可以保证导入数据之后序列也是同步的。
也可以导入后再修改序列的值:

不可以直接修改的,但是可以间接修改。
alter sequence se_1 increment by -2;
修改步进的值,然后查询一次,
select seq.nextval from dual;
然后再把步进修改回去,
alter sequence se_1 increment by 1;
相当于修改了序列的当前值。

猜你喜欢

转载自blog.csdn.net/liyaowen505/article/details/83537208