2013-07-05 73 views
1

我的數據庫中有一張表格,這個表格非常需要自動遞增字段。要創建一個,我跑向上述數據庫中的這些下面的SQL語句:PostgreSQL表id不會自動增加

CREATE SEQUENCE table_id_seq 
    INCREMENT 1 
    NO MINVALUE 
    NO MAXVALUE 
    START 1 
    CACHE 1; 

ALTER TABLE ONLY table ALTER COLUMN id SET DEFAULT nextval('table_id_seq'::regclass); 
ALTER TABLE ONLY table 
    ADD CONSTRAINT table_id PRIMARY KEY (id); 

然而,當我嘗試插入任何兩個數值爲表我仍然獲得了主鍵衝突錯誤。我不明白我錯過了什麼讓它自動遞增。

+4

向我們展示你的INSERT語句。 –

+0

我正在使用實體框架,我不知道如何查看自動生成的插入語句。 – user1815201

+0

沒有看到實際的插入,它是不可能回答你的問題。 –

回答

0

當使用實體框架並對數據庫進行更改時,必須記得從數據庫更新模型。此外,您必須在再次測試代碼之前保存模型,否則將使用舊模型,而不會獲得您正在查找的結果。

0

序列已創建後,我們可以調用NEXTVAL('table_id_seq')自動生成一個新值。

1.鏈接的順序,以獨特的列

ALTER TABLE ONLY 
ALTER COLUMN id 
SET DEFAULT NEXTVAL('table_id_seq'); 
ALTER TABLE ONLY table 
    ADD CONSTRAINT table_id PRIMARY KEY (id);