-- SQL скрипт для удаления дубликатов claim_id -- Оставляет только запись с id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68' -- Удаляет все остальные записи с таким же claim_id в payload -- ⚠️ ВНИМАНИЕ: Перед выполнением DELETE обязательно выполните SELECT ниже, -- чтобы увидеть, что будет удалено! -- ============================================================================ -- ШАГ 1: ПРОВЕРКА - Какие записи будут удалены? -- ============================================================================ -- Выполните этот запрос ПЕРВЫМ, чтобы увидеть, что будет удалено: SELECT id, payload->>'claim_id' AS claim_id, status_code, channel, created_at, updated_at, CASE WHEN id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'::uuid THEN '✅ ОСТАВИТЬ' ELSE '❌ УДАЛИТЬ' END AS action, -- Показываем, есть ли send_to_form_approve CASE WHEN payload->'send_to_form_approve' IS NOT NULL THEN 'YES' ELSE 'NO' END AS has_send_to_form_approve, -- Размер payload pg_column_size(payload) AS payload_size_bytes FROM clpr_claims WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68' ORDER BY updated_at DESC; -- ============================================================================ -- ШАГ 2: УДАЛЕНИЕ - Удаляем все записи, кроме нужной -- ============================================================================ -- ⚠️ ВНИМАНИЕ: Этот запрос УДАЛИТ данные! Выполняйте только после проверки! -- Вариант 1: Удалить все записи с таким claim_id, кроме нужной DELETE FROM clpr_claims WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68' AND id != '0eb051ec-23a6-4e06-8b98-f02d20d35f68'::uuid RETURNING id, payload->>'claim_id' AS claim_id, status_code, created_at, updated_at; -- ============================================================================ -- ШАГ 3: ПРОВЕРКА - Убедиться, что осталась только одна запись -- ============================================================================ -- После удаления выполните этот запрос, чтобы проверить результат: SELECT id, payload->>'claim_id' AS claim_id, status_code, channel, created_at, updated_at, CASE WHEN payload->'send_to_form_approve' IS NOT NULL THEN 'YES' ELSE 'NO' END AS has_send_to_form_approve FROM clpr_claims WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68' ORDER BY updated_at DESC; -- Должна остаться только одна запись с id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68' -- ============================================================================ -- АЛЬТЕРНАТИВНЫЙ ВАРИАНТ: Удалить по ID (если знаете конкретные ID дубликатов) -- ============================================================================ /* -- Если вы знаете конкретные ID дубликатов, можно удалить их напрямую: DELETE FROM clpr_claims WHERE id IN ( 'uuid-дубликата-1', 'uuid-дубликата-2', 'uuid-дубликата-3' ) RETURNING id, payload->>'claim_id' AS claim_id; */