20 lines
581 B
PL/PgSQL
20 lines
581 B
PL/PgSQL
BEGIN;
|
|
|
|
-- 在同一事务取得排他锁后检查并删除,避免检查与删表之间写入新预占事实。
|
|
DO $$
|
|
BEGIN
|
|
IF to_regclass('tb_agent_wallet_reservation') IS NULL THEN
|
|
RETURN;
|
|
END IF;
|
|
|
|
LOCK TABLE tb_agent_wallet_reservation IN ACCESS EXCLUSIVE MODE;
|
|
IF EXISTS (SELECT 1 FROM tb_agent_wallet_reservation LIMIT 1) THEN
|
|
RAISE EXCEPTION 'tb_agent_wallet_reservation 已存在代理主钱包预占事实,禁止删表回滚,请停止生产者后向前修复';
|
|
END IF;
|
|
|
|
DROP TABLE tb_agent_wallet_reservation;
|
|
END
|
|
$$;
|
|
|
|
COMMIT;
|