Веб-версияОткрыть в Telegram

ПостПроверка уникальности работает через =, а NULL = NULL не даёт true. По умолчанию NULL не считается уникальным значением.

9 сентября 2026
P
Python Portal
Фотография
нажмите — покажем
Проверка уникальности работает через =, а NULL = NULL не даёт true. По умолчанию NULL не считается уникальным значением. Postgres не может доказать равенство двух NULL, поэтому пропускает обе строки. Простой пример, где это ломается, — составной ключ: -- UNIQUE (user_id, org_id, deleted_at) INSERT INTO memberships VALUES (1, 10, NULL); INSERT INTO memberships VALUES (1, 10, NULL); -- обе строки будут вставлены В итоге можно получить две активные записи membership для одного и того же пользователя, потому что ограничение уникальности вообще не срабатывает. NULLS NOT DISTINCT Начиная с Postgres 15, уникальные ограничения и индексы могут считать NULL равными: UNIQUE NULLS NOT DISTINCT (user_id, org_id, deleted_at) Второй INSERT уже завершится ошибкой. Но это также запретит две строки с одинаковым значением deleted_at, а не только две активные строки. Частичный уникальный индекс Если уникальность нужно обеспечить только для активных строк, используйте partial unique index: CREATE UNIQUE INDEX ON memberships (user_id, org_id) WHERE deleted_at IS NULL; 👉 @PythonPortal
18 · 4.7K ·

Рядом в ленте

PPython PortalЭто, пожалуй, одна из лучших технических книг о том, как большие языковые модели обучают в огромных масштабах: > память GPU и профилирование > разбиение вычислеPPython PortalКаждый новый else if — это ещё одно критическое допущение, о котором ты уже забыл. Убери один граничный случай — и смотри, как вся конструкция начинает шататься
это сообщение
PPython PortalGPT-6 Astra дали роботизированную руку, кисть и камеру, а затем попросили нарисовать мост Золотые Ворота в реальном мире. Модель сама разобралась, как управлятьPPython Portal«Understanding Linear Algebra» — бесплатный учебник, который связывает теоретические основы линейной алгебры с практическими применениями и информатикой. Он охв
PPython PortalPython Portal@PythonPortal · канал · Технологии
50 232подписчиков3 830средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем