2010-12-15 123 views
1

嗨,我有一個問題,我知道這張貼很多次,但我沒有找到我的問題的答案。問題是,我有一張桌子和一列「ID」,我希望它是唯一的數字,就像平常一樣。這種類型的列是串行的,每個插入後的下一個值是從一個序列來的,所以一切似乎都是正確的,但它仍然有時會顯示這個錯誤。我不知道爲什麼?在文件中寫道,順序是愚蠢的教授,並始終工作。如果我添加一個UNIQUE約束到那個列會不會?我之前曾在Postres上工作過很多次,但這是第一次出現這個錯誤。我做了一切正常,我從來沒有遇到過這個問題。你能幫我找到將來可以用來創建所有表格的答案嗎?比方說,我們有這樣的東西很簡單:postgresql重複密鑰違反唯一約束

CREATE TABLE comments 
(
    id serial NOT NULL, 
    some_column text NOT NULL, 
    CONSTRAINT id_pkey PRIMARY KEY (id) 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE interesting.comments OWNER TO postgres; 

如果我添加:

ALTER TABLE comments ADD CONSTRAINT id_id_key UNIQUE(id) 

的時候,如果足夠多的還是有應該做一些其他的事情嗎?

+1

顯示插入數據的代碼;擁有主鍵已經強制一個唯一的約束,所以你不需要添加。 – 2010-12-15 09:21:25

回答

2

主鍵已經可以防止您插入重複值,正如您在遇到錯誤時所遇到的一樣。添加另一個唯一約束不是必需的。

「重複密鑰」錯誤告訴你工作沒有完成,因爲它會產生重複密鑰,而不是它發現重複密鑰已經提交給表。

相關問題