TGViewer
SQL Ready | Базы Данных SQL Ready | Базы Данных @sql_ready · 17.5K subscribers
Post #1645 3.03K
Find + Update в одном проходе!

Найдём строки с невозможными значениями и сразу подготовим их к UPDATE:
WITH c AS (SELECT id FROM products WHERE price < 0 LIMIT 3)


CTE c вернёт проблемные id.

Теперь обновим только найденные строки, не дублируя условие в клиенте:
UPDATE products SET price = 0


Ссылаемся на выборку из CTE, чтобы не рассинхронизировать find/update:
WHERE id IN (SELECT id FROM c);


Попробуйте сами на тестовой таблице:
CREATE TABLE products(id int PRIMARY KEY, price int);
INSERT INTO products VALUES (1,-10),(2,-5),(3,100);


Запустите find+update снова и убедитесь, что исправление точечное и атомарное.

🔥 Экономит время выравнивания таблиц при интеграциях, корректировки классификаторов или миграций и др.

➡️ SQL Ready | #совет
  • ❤ 12
  • 👍 9
  • 🔥 8
More from @sql_ready
  1. Oct 8, 2026Почему UNIQUE допускает несколько NULL в PostgreSQL! Ограничение UNIQUE гарантирует уникал…
  2. Oct 7, 2026📂 Шпаргалка по паттернам распределённых систем! Например, Replication повышает доступност…
  3. Oct 6, 2026Проверяйте связи с учётом периода! В PostgreSQL 18 связь может учитывать ещё и период его…
  4. Oct 6, 2026⚡️5 фундаментальных курсов по ИБ по цене одного Это предложение для тех, кто готов войти в…
  5. Oct 6, 2026👍 Устройство PostgreSQL — подробная документация на русском языке! Материалы посвящены не…
  6. Oct 5, 2026COUNT(*) в PostgreSQL: MVCC, visibility map и стоимость выполнения! В PostgreSQL точный CO…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →