-- 仅用于单独授权的 TEST:修正作废对账单历史明细阻止原费用重新生成对账单的问题。 -- 固定目标 MySQL 8 / InnoDB;保留全部账单、明细、金额及修订,不更新、删除或回填业务记录。 -- 单内同一费用版本保持唯一;跨单有效占用由 Finance 生成时的费用行锁和状态校验保证。 -- 前置:Finance 已具备生成时 AVAILABLE -> LOCKED 校验,以及作废单重开时的来源重新占用校验。 -- 执行前后核对 SHOW CREATE TABLE 与记录总数;本文件存在不表示已经执行。 -- 使用独立连接并开启遇错停止;一条原子 ALTER 替换索引,结果不明确先回查,不盲目重放。 ALTER TABLE baiyue_finance.fin_bill_line DROP INDEX uk_fin_bill_line_source, ADD UNIQUE KEY uk_fin_bill_line_bill_source (bill_id, source_type, source_id, source_version), ADD KEY idx_fin_bill_line_source (source_type, source_id, source_version);