2016-07-17 34 views
2

刪除自動遞增我有一個數據庫現有的表,FK'd從幾個人,SQL如下:和PostgreSQL場

CREATE TABLE forecastsource (
    source_id integer DEFAULT nextval(('public.forecastsource_source_id_seq'::text)::regclass) NOT NULL, 
    source_name character varying NOT NULL 
); 

我想刪除從id字段的自動增量,只是將其移動到是一個int字段(不丟失表中的當前數據)。除了刪除和重新創建表格之外,我該怎麼做?

回答

5

剛落默認值:

ALTER TABLE forecastsource ALTER COLUMN source_id DROP DEFAULT; 

您可能還需要下降的順序即可。

+2

如果序列是作爲SERIAL創建的,並且由於某種原因您仍然需要它,那麼您應該更改SEQUENCE的預測來源__source_id_seq OWNED BY NONE; –