BEGIN; -- 停止退款生产者后在同一事务锁定资金流水与 Outbox,避免检查和删索引之间提交新事实。 LOCK TABLE tb_agent_wallet_transaction, tb_outbox_event IN ACCESS EXCLUSIVE MODE; DO $$ BEGIN IF EXISTS ( SELECT 1 FROM tb_outbox_event WHERE event_type = 'wallet.agent_main.refunded' ) THEN RAISE EXCEPTION '已存在代理主钱包统一退款事实,禁止移除退款防重约束'; END IF; END $$; DROP INDEX IF EXISTS uq_agent_wallet_refund_reference; COMMIT;