私はデータベース内の1つのサブジェクトに複数のアドレスを格納する方法を見つけたいと思います。長い話を短くカットするPostgres Postgres 2つのカラムのユニークな制約:整数とブール
は、我々はテーブルを持って言うことができます:テーブル内の各idに
CREATE TABLE test
(
id integer NOT NULL,
active boolean NOT NULL,
CONSTRAINT pk_id PRIMARY KEY (id)
)
、高々1つの真のアクティブな値がなければなりません。
これをどのように達成できますか?
ありがとうございました。 @ThiefMasterとして
create unique index some_index on test (id) where active;
は、プライマリインデックスが削除されなければならない状態:
実際には、「id」がプライマリキーであるため、* ID *が2つの行になることができないため、何もする必要はありません。 – ThiefMaster
'id'をプライマリにしたくない場合は、トリガを書く必要があります:http://www.postgresql.org/docs/9.1/static/sql-createtrigger.htmlそれはおそらくあなたが望むものではありません。 –