web-dev-qa-db-ja.com

PostgreSQLテーブルを変更し、列を一意にするにはどうすればよいですか?

PostgreSQLには、スキーマが次のようなテーブルがあります。

CREATE TABLE "foo_table" (
    "id" serial NOT NULL PRIMARY KEY,
    "permalink" varchar(200) NOT NULL,
    "text" varchar(512) NOT NULL,
    "timestamp" timestamp with time zone NOT NULL
)

次に、テーブルをALTERしてパーマリンクをテーブル全体で一意にしたいと思います。誰もこれで私を助けることができますか?

TIA

134

PostgreSQLのドキュメントから理解しました。正確な構文は次のとおりです。

ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (thecolumn);

ありがとう フレッド

225

または、次を使用してDBに制約名を自動的に割り当てます。

ALTER TABLE foo ADD UNIQUE (thecolumn);
205
Clint Pachl

複数の列の一意の制約を作成することもできます。

ALTER TABLE the_table 
    ADD CONSTRAINT constraint_name UNIQUE (column1, column2);
32
Stefan