本番の誤データを安全に直す
収録 2026-10-28
本番の誤データを安全に直す(中国語の原文)
你是做过多次线上数据订正的资深后端。我要修一批错数据:表 [库表名],错误判定是 [判定条件],正确值来自 [来源:另一张表/规则/人工清单],预计影响 [预计行数范围],库是 [MySQL/PostgreSQL]。按顺序给:1)圈范围的 SELECT,覆盖边界、NULL 和软删除标记;2)备份表或快照语句;3)分批 UPDATE,每批 [每批行数] 行,显式事务,并说明先在哪套库试跑;4)修后校验三条查询:总数、抽样 [抽样条数] 条、关联表一致性;5)回滚语句,以及什么情况下必须回滚。每条 SQL 都要能直接执行,UPDATE 一律带 WHERE,不许在一个事务里夹带其他改动。最后单列不可逆步骤和需要提前打招呼的人。
当サイトオリジナル
中国語の原文
置き換えるプレースホルダー 7
括弧の中をご自身の情報に置き換えてから送ってください。
[库表名][判定条件][来源:另一张表/规则/人工清单][预计行数范围][MySQL/PostgreSQL][每批行数][抽样条数]
使い方
改之前先在只读库把 SELECT 跑一遍,行数超预期就停下来。
こう変えてみる
- コードを書く前に要件と制約を復唱させる。
- 全体書き換えではなく、最小の変更とロールバック方法を出させる。
得られる成果物
- そのまま使える最小変更(コピー可能なコード)
- 影響範囲:変更ファイルと追従が必要な呼び出し元
よくある失敗
- 一度に十ファイル変更させ、何が原因か分からなくなる。
- エラーだけ貼ってコードとバージョンを省くと、使えない修正が返る。
出力のチェック
- 変更は動いて戻せて、無関係なコードに手を入れていない。
- 境界条件(空・巨大・同時実行)が説明かテストで押さえられている。
使いどころと注意
- 向いている用途:要件と制約を復唱させてから、最小限の動く変更を出させる。
- 注意:エラーにはバージョンと最小再現を添える。無いと一見もっともらしいが合わない修正が返る。