21 lines
545 B
PL/PgSQL
21 lines
545 B
PL/PgSQL
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;
|