-- 回滚:恢复佣金(commission)钱包不允许负余额的旧约束。 -- 注意:若已存在负余额佣金数据,回滚会因违反检查约束而失败,属预期保护。 ALTER TABLE tb_agent_wallet DROP CONSTRAINT chk_agent_wallet_available_balance; ALTER TABLE tb_agent_wallet ADD CONSTRAINT chk_agent_wallet_available_balance CHECK ( (wallet_type = 'main' AND (balance::numeric - frozen_balance::numeric + CASE WHEN credit_enabled THEN credit_limit::numeric ELSE 0::numeric END) >= 0::numeric) OR (wallet_type = 'commission' AND balance >= 0 AND frozen_balance <= balance) );