Русский
Открыть в Telegram

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

10 сентября 2026
P
Python Ninja | Программирование
Фотография
нажмите — покажем
Проверка уникальности работает через =, а 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; ✈️ Python Ninja
7 · 582 ·

Рядом в ленте

PPython Ninja | ПрограммированиеУдивительно, как часто путают программу, процесс и поток. Вот простое объяснение. 1. Программа Это файл на диске, содержащий набор инструкций. Одна программа моPPython Ninja | ПрограммированиеЭто, пожалуй, одна из лучших технических книг о том, как большие языковые модели обучают в огромных масштабах: > память GPU и профилирование > разбиение вычисле
это сообщение
PPython Ninja | ПрограммированиеПрограммирование c нуля «От новичка к уверенности в коде на Python» На Stepik запустили курс для новичков, которым важно не зубрить команды, а понимать логику. PPython Ninja | Программирование«Understanding Linear Algebra» — бесплатный учебник, который связывает теоретические основы линейной алгебры с практическими применениями и информатикой. Он охв
PPython Ninja | ПрограммированиеPython Ninja | Программирование@python_Ninjas · канал · Технологии
6 808подписчиков317средний охват поста
Лента площадки Открыть в Telegram

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

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