From 74e87033ed6378c96874f7074fe74f284d79ce28 Mon Sep 17 00:00:00 2001 From: vipg Date: Tue, 18 Nov 2025 11:50:53 +0800 Subject: [PATCH] add --- backend/sql/05_exchange.sql | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/backend/sql/05_exchange.sql b/backend/sql/05_exchange.sql index dcc7a87..5e45f54 100644 --- a/backend/sql/05_exchange.sql +++ b/backend/sql/05_exchange.sql @@ -88,8 +88,14 @@ BEGIN WHERE table_name = 'exchange_info_view' ) INTO view_exists; - -- 创建或更新视图 - CREATE OR REPLACE VIEW exchange_info_view AS + -- 若视图存在,先删除(避免字段名冲突) + IF view_exists THEN + DROP VIEW exchange_info_view; + RAISE NOTICE '已删除旧视图 exchange_info_view'; + END IF; + + -- 重新创建视图(无冲突风险) + CREATE VIEW exchange_info_view AS SELECT u.id AS exchange_id, n.name AS name, @@ -99,17 +105,16 @@ BEGIN FROM exchange u JOIN - exchange_name n ON u.id = n.exchange_id + exchange_name n ON u.id = n.exchange_id AND n.deleted = FALSE JOIN - exchange_short_name sn ON u.id = sn.exchange_id + exchange_short_name sn ON u.id = sn.exchange_id AND sn.deleted = FALSE JOIN - exchange_code c ON u.id = c.exchange_id + exchange_code c ON u.id = c.exchange_id AND c.deleted = FALSE WHERE u.deleted = FALSE; - -- 根据视图是否已存在输出不同提示 IF view_exists THEN - RAISE NOTICE '视图 exchange_info_view 已更新'; + RAISE NOTICE '视图 exchange_info_view 已更新(删除旧视图后重建)'; ELSE RAISE NOTICE '视图 exchange_info_view 已创建'; END IF;