233

次の表があります。

 tickername | tickerbbname  | tickertype
------------+---------------+------------
 USDZAR     | USDZAR Curncy | C
 EURCZK     | EURCZK Curncy | C
 EURPLN     | EURPLN Curncy | C
 USDBRL     | USDBRL Curncy | C
 USDTRY     | USDTRY Curncy | C
 EURHUF     | EURHUF Curncy | C
 USDRUB     | USDRUB Curncy | C

tickername特定の/tickerbbnameペアに対して複数の列が存在することは望ましくありません。私はすでにテーブルを作成しており、そこにはたくさんのデータがあります (独自の基準を満たしていることを確認済みです)。ただし、サイズが大きくなるにつれて、エラーの余地が忍び寄ってきます。

UNIQUEこの時点で制約を追加する方法はありますか?

4

4 に答える 4

447

psqlのインライン ヘルプ:

\h ALTER TABLE

また、postgres docsにも記載されています(優れたリソースであり、読みやすいものでもあります)。

ALTER TABLE tablename ADD CONSTRAINT constraintname UNIQUE (columns);
于 2009-07-28T14:30:42.237 に答える
46

はい、できます。ただし、テーブルに一意でないエントリがある場合、失敗します。テーブルに一意の制約を追加する方法は次のとおりです。PostgreSQL 9.x を使用している場合は、以下の手順に従ってください。

CREATE UNIQUE INDEX constraint_name ON table_name (columns);
于 2011-09-07T00:19:19.163 に答える
6

はい、後で UNIQUE 制約を追加できます。ただし、テーブルに一意でないエントリがある場合、修正するまで Postgres は文句を言います。

于 2009-07-28T14:28:58.883 に答える