Re: [pgsql-ru-general] Частично уникальное поле

Поиск
Список
Период
Сортировка
От Dmitriy Igrishin
Тема Re: [pgsql-ru-general] Частично уникальное поле
Дата
Msg-id AANLkTin271pTpdAcK_7_y0O1W+uO0m9wMgKyAS89w6oR@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgsql-ru-general] Частично уникальное поле  (Dmitriy Igrishin <dmitigr@gmail.com>)
Список pgsql-ru-general


13 марта 2011 г. 2:13 пользователь Dmitry E. Oboukhov <unera@debian.org> написал:

DI> индекс построил

DI> CREATE UNIQUE INDEX "tbli" ON "tbl" ("col") WHERE "col" IS NOT NULL;

DI> а как построить CONSTRAINT? не хочется RULE приделывать

DI> Чем вышеприведённый индекс не устраивает?

а я попробовал в такую таблицу подобавлять записи с одинаковым 'col' -
вполне нормально добавляются. хотя в документации написано что
уникальный индекс контроллирует и вставку данных тоже.
Предполагаю, что ситуация подобна следующей:
dmitigr=> create table ttt(nm text);
CREATE TABLE
dmitigr=> create unique index ttt_uidx on ttt(nm) where nm notnull;
CREATE INDEX
dmitigr=> insert into ttt(nm) values('dima');
INSERT 0 1
dmitigr=> insert into ttt(nm) values('Dima');
INSERT 0 1

Если так, то нижеследующая команда может быть прольёт свет:

dmitigr=> create unique index ttt_uidx2 on ttt(lower(nm)) where nm notnull;
ERROR:  could not create unique index "ttt_uidx2"
DETAIL:  Key (lower(nm))=(dima) is duplicated.

 

что-то толи я не так делаю, толи не так читаю, спать видимо пора...
--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
 `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537



--
// Dmitriy.


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

Предыдущее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: Частично уникальное поле
Следующее
От: Nikolay Samokhvalov
Дата:
Сообщение: Re: [pgsql-ru-general] Re: [pgsql-ru-general] Частично уникальное поле