Нашли строку с неверным статусом на проде: почему не стоит чинить её UPDATE-ом
В боевой базе вы нашли заказ, у которого статус «оплачен», хотя платежа по нему нет. Есть соблазн быстро исправить данные:
UPDATE orders SET status = 'new' WHERE id = 90124;
Почему такое исправление силами поддержки — плохая идея?
- Потому что UPDATE без явной транзакции всегда откатывается и данные в таблице в итоге останутся прежними
- Потому что UPDATE по одной строке слишком долго выполняется на большой таблице и заблокирует её целиком
- Потому что менять данные допустимо только через графический клиент вроде DBeaver, а не из консольного psql
- Потому что правка мимо приложения не запускает связанную логику — события, историю, интеграции — и маскирует причину
