Re: unique index with several columns

Поиск
Список
Период
Сортировка
От Alexey M Boltenkov
Тема Re: unique index with several columns
Дата
Msg-id 8b4b7a41-5181-60db-2bd9-a6fabcd6226f@yandex.ru
обсуждение исходный текст
Ответ на Re: unique index with several columns  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы RE: unique index with several columns  ("Voillequin, Jean-Marc" <Jean-Marc.Voillequin@moodys.com>)
Список pgsql-sql
On 03/04/22 21:32, Tom Lane wrote:
> Alexey M Boltenkov <padrebolt@yandex.ru> writes:
>> You need the new v15 feature:
>> NULLS [NOT] DISTINCT
> That won't replicate the behavior shown by the OP though.
> In particular, not the weird inconsistency for all-null rows.
>
>             regards, tom lane
>

But why?

# create table t(c1 char, c2 char);
CREATE TABLE
# create unique index idx on t(c1,c2) nulls not distinct where c1 is not 
null or c2 is not null;
CREATE INDEX
# insert into t(c1,c2) values (null,null);
INSERT 0 1
# insert into t(c1,c2) values (null,null);
INSERT 0 1
# insert into t(c1,c2) values ('a',null);
INSERT 0 1
# insert into t(c1,c2) values ('a',null);
ERROR:  23505: duplicate key value violates unique constraint "idx"
DETAIL:  Key (c1, c2)=(a, null) already exists.
SCHEMA NAME:  public
TABLE NAME:  t
CONSTRAINT NAME:  idx
LOCATION:  _bt_check_unique, nbtinsert.c:664
# \d+ t
                                                Table "public.t"
  Column │     Type     │ Collation │ Nullable │ Default │ Storage │ 
Compression │ Stats target │ Description
════════╪══════════════╪═══════════╪══════════╪═════════╪══════════╪═════════════╪══════════════╪═════════════
  c1     │ character(1) │           │          │         │ extended 
│             │              │
  c2     │ character(1) │           │          │         │ extended 
│             │              │
Indexes:
     "idx" UNIQUE, btree (c1, c2) NULLS NOT DISTINCT WHERE c1 IS NOT 
NULL OR c2 IS NOT NULL
Access method: heap
# table t;
  c1 │ c2
════╪════
  ¤  │ ¤
  ¤  │ ¤
  a  │ ¤
(3 rows)




В списке pgsql-sql по дате отправления:

Предыдущее
От: Klaus Kaisersberger
Дата:
Сообщение: RE: unique index with several columns
Следующее
От: Sarita Sharma
Дата:
Сообщение: Re: Bug in tables column data in postgres database