1. 程式人生 > >向Oracle資料庫匯入自增長的資料,保證序列同時增長

向Oracle資料庫匯入自增長的資料,保證序列同時增長

資料庫有表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;
相當於修改了序列的當前值。