Bayangkan Anda memiliki tabel sederhana:
name | is_active
----------------
A | 0
A | 0
B | 0
C | 1
... | ...
Saya perlu membuat batasan unik khusus yang gagal pada situasi berikut: is_active
nilai yang berbeda tidak dapat hidup berdampingan untuk nilai yang sama name
.
Contoh kondisi yang diizinkan:
Catatan: indeks unik multi-kolom sederhana tidak akan mengizinkan kombinasi seperti ini.
A | 0
A | 0
B | 0
Contoh kondisi yang diizinkan:
A | 0
B | 1
Contoh kondisi gagal:
A | 0
A | 1
-- should be prevented, because `A 0` exists
-- same name, but different `is_active`
Idealnya, saya perlu batasan unik atau indeks parsial unik. Pemicu lebih bermasalah bagi saya.
Ganda A,0
diizinkan, tetapi (A,0) (A,1)
tidak.
ERROR: data type boolean has no default operator class for access method "gist"