1. 程式人生 > >oracle 新增sequence時通過其查詢表或者sequence來確定start with的值

oracle 新增sequence時通過其查詢表或者sequence來確定start with的值

專案使用oracle作為資料庫,最初時多個表共用了一個sequence來生產主鍵,後來需要改造為一個表一個sequence。為了不對歷史資料修改,需要根據每個表現在的主鍵值來確定新建的sequence的start with值。比如需要為user_表新增一個名為seq_user的sequence,而user_表的主鍵為user_id_,那麼語法如下:

BEGIN
	declare max_val number;
BEGIN
	select max(user_id_) into max_val from user_;
	execute immediate('CREATE sequence seq_user minvalue 1 maxvalue 999999999999 start with '||max_val||' increment by 1 cache 50 ');
END;
END;