2010-12-15 97 views
1

こんにちは私はこれが何度も投稿されたことを知っている質問がありますが、私の問題に対する答えは見つかりませんでした。問題は、私はテーブルとカラム "id"を持っていて、それは通常のようにユニークな番号にしたいということです。このタイプの列はシリアルであり、各挿入後の次の値はシーケンスから来ているので、すべてが正常であるように見えますが、このエラーが表示されることがあります。どうしてか分かりません ?ドキュメンテーションでは、シーケンスは愚かなprofであり、常に動作します。その列にUNIQUE制約を追加すると、それはthelpですか?私は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) 

ウィルenoughtまたは実行する必要がありますいくつかの他の事があることがあれば、我々はこのような簡単なものを考えてみましょうか?

+1

データを挿入するコードを表示します。プライマリキーを持つことは既にユニークな制約を強制するので、追加する必要はありません。 –

答えて

2

エラーが発生したときに発生している重大な値の挿入を、主キーが保護しています。別の一意制約を追加する必要はありません。

「重複キー」のエラーは、それがすでに表にコミット重複キーを発見していないこと、それは重複キーを生成するための作業が行われていなかったことを語っています。あなたのシーケンスが同期して、あなたが手動でバック同期して、それを持参する必要があるかもしれない

関連する問題