Сравните RESTRICT, CASCADE и SET NULL на небольшом изолированном примере, затем проверьте фактическое ограничение и зависимые строки перед изменением реальных данных.
PostgreSQL / SQL / Foreign keys / Transactions
Используйте ON CONFLICT для атомарной вставки или обновления строк на основе уникальных ограничений. Укажите точную цель конфликта, обрабатывайте повторяющиеся входные данные и понимайте, что исключенные значения заменяют, а не накапливают.
postgresql / sql / upsert / insert / on-conflict / unique-constraint / concurrency / database
Найти дорогой этап и отличить оценку планировщика от измерения.
PostgreSQL / SQL / Performance
Транзакции в PostgreSQL позволяют группировать SQL-операции в атомарные блоки с помощью команд BEGIN, COMMIT и ROLLBACK. Это обеспечивает целостность данных: либо все изменения применяются, либо ни одно из них не применяется. Механизм основан на принципах ACID - атомарности, согласованности, изоляции и долговечности.
PostgreSQL / transactions / BEGIN / COMMIT / ROLLBACK / ACID / savepoint
Как найти причину повторяющихся строк после JOIN: посчитать совпадения ключей, проверить ограничения и выбрать детализацию результата.
SQL / JOIN / PostgreSQL
IS NULL, трёхзначная логика и различие COUNT(*) и COUNT(поле).
SQL / PostgreSQL / NULL
Подробный технический разбор различий между предложениями WHERE и HAVING, с акцентом на порядок выполнения, совместимость с агрегатными функциями и стратегии оптимизации производительности.
SQL / PostgreSQL / Database / Query Optimization / Data Analysis