2016-11-17 55 views
0

我想更改所有使用順序ID的列的增量值。我該怎麼做?更新postgres中幾個記錄的串行字段的增量

我嘗試以下方法2,無論失敗:

UPDATE information_schema.sequences SET increment=1; 

這不起作用,因爲information_schema.sequences這是一個觀點。

我還試圖用ALTER SEQUENCE,加入FROM末,如:

ALTER SEQUENCE A.sequence_name INCREMENT BY 2 FROM (SELECT * FROM information_schema.sequences) AS A 

但我得到一個語法錯誤。

我該怎麼做?

回答

0

嘗試描述here

TWICE

樣品如何改變所有序列中資模式EDITED使用setvaldocs

OR

ALTER SEQUENCE... RESTART WITH...

do 
$$ 
declare 
i record; 
begin 
for i in (select * from information_schema.sequences) loop 
execute $e$ALTER SEQUENCE $e$||i.sequence_name||$e$ INCREMENT BY 2$e$; 
end loop; 
end; 
$$ 
; 
DO 
+0

setval dons't不會改變增量,只有當前值... ALTER SEQUENCE不接受來自SELECT的值... – alface

+0

是的,但我不確定你想實現什麼。 –

+0

對不起,我編輯了我的問題以便更清楚。 – alface