人大金仓pg模式批量检查表是否存在
- 将下面sql完整复制到数据库连接工具上执行
bash
1. 步骤1:替换以下参数为你的实际值
WITH params AS (
SELECT
'你的数据库名'::varchar AS db_name, -- 替换为实际数据库名(如:data_db)
'public'::varchar AS schema_name -- 替换为实际模式名(如:public,默认模式填public)
),
-- 步骤2:已替换为你提供的32个ODS层表名
target_tables AS (
SELECT unnest(ARRAY[
'表1',
'表2'
]) AS table_name
)
-- 步骤3:关联系统视图查询表的存在状态
SELECT
tt.table_name AS 操作数据层表名,
CASE WHEN it.table_name IS NOT NULL THEN '存在' ELSE '不存在' END AS 表存在状态
FROM
target_tables tt
LEFT JOIN
information_schema.tables it ON
it.table_catalog = (SELECT db_name FROM params)
AND it.table_schema = (SELECT schema_name FROM params)
AND it.table_name = tt.table_name
ORDER BY
tt.table_name;