-- 仅用于单独授权的 TEST:修正作废应收仍占用原对账单的唯一约束。 -- 不更新、删除或回填业务记录;作废单的原对账单关联与修订历史保持不变。 -- 一条原子 ALTER 同时替换约束;有效应收重复、原索引缺失或目标列已存在均应报错停止。 -- 使用独立连接并开启遇错停止;若结果不明确,先核对结构,不盲目重放。 -- 前置:已部署 Finance 结算重开校验(fe89b8a2b875),目标为 MySQL 8 / InnoDB。 ALTER TABLE baiyue_finance.fin_settlement ADD COLUMN active_receivable_statement_id BIGINT UNSIGNED GENERATED ALWAYS AS (CASE WHEN direction='RECEIVABLE' AND status<>'VOIDED' THEN reconciliation_statement_id ELSE NULL END) VIRTUAL COMMENT '有效应收占用的对账单;作废单不占用,历史关联仍保留', DROP INDEX uk_fin_settlement_receivable_statement, ADD UNIQUE KEY uk_fin_settlement_active_receivable (tenant_id, active_receivable_statement_id);