9

サブジェクトごとに 1 つのデフォルト アドレスのみを使用して、データベースに 1 つのサブジェクトの複数のアドレスを保存する方法を見つけたいと考えています。

長い話を短くするために、テーブルがあるとしましょう:

CREATE TABLE test
(
  id integer NOT NULL,
  active boolean NOT NULL,
  CONSTRAINT pk_id PRIMARY KEY (id)
)

テーブル内の ID ごとに、最大で 1 つの真のアクティブ値が存在する必要があります。

どうすればこれを達成できますか?

ありがとう。

4

2 に答える 2

16

部分インデックスはあなたが望むものです:

create unique index some_index on test (id) where active;

@ThiefMaster が述べているように、プライマリ インデックスは削除する必要があります。

于 2012-06-13T12:37:53.240 に答える