Veri tabanımdaki bir konu için birden çok adres saklamak için, konu başına yalnızca bir varsayılan adres ile bir yol bulmak istiyorum. İki sütun üzerinde Benzersiz Kısıtlama Postgres: Tamsayı ve Boole
Uzun lafın kısası, biz bir tablo var diyelim: tablodaki her kimliği içinCREATE TABLE test
(
id integer NOT NULL,
active boolean NOT NULL,
CONSTRAINT pk_id PRIMARY KEY (id)
)
, en fazla 1 gerçek aktif değer olmalıdır.
Bunu nasıl başarabilirim?
Teşekkürler. @ThiefMaster olarak
create unique index some_index on test (id) where active;
birincil indeks kaldırılması gerektiğini bildiren:
Aslında * bir şey yapmanıza gerek yok * birincil anahtar olan 'id' onu benzersiz kılar, böylece * aynı kimliği taşıyan iki satır olamaz. – ThiefMaster
Eğer 'id' birincil olarak istemiyorsanız, o zaman bir tetikleyici yazmanız gerekir: http://www.postgresql.org/docs/9.1/static/sql-createtrigger.html ama bu muhtemelen sizin istediğinizi değil. –