-- 回滚手机号—资产关联表。 -- 失效关系行同样承载业务事实:审计只写脱敏手机号,完整手机号只能由关系行本身证明, -- 且批量解绑任务的逐行结果依赖解绑当时的关联快照,删表即不可重建。 -- 因此存在任一记录(含已失效行)时禁止破坏性回滚,需人工核对后向前修复。 BEGIN; -- 同一事务内先取排他锁再检查并删表,避免检查与删表之间写入新事实。 DO $$ BEGIN IF to_regclass('tb_phone_asset_association') IS NOT NULL THEN LOCK TABLE tb_phone_asset_association IN ACCESS EXCLUSIVE MODE; IF EXISTS (SELECT 1 FROM tb_phone_asset_association LIMIT 1) THEN RAISE EXCEPTION 'tb_phone_asset_association 已存在手机号—资产关联事实(含已失效行),禁止删表回滚,请人工核对后向前修复'; END IF; END IF; END $$; DROP INDEX IF EXISTS idx_phone_asset_association_asset; DROP INDEX IF EXISTS idx_phone_asset_association_phone; DROP INDEX IF EXISTS uq_phone_asset_association_valid; DROP TABLE IF EXISTS tb_phone_asset_association; COMMIT;