[英]Run the same SQL query for multiple schemas
我希望編寫一個可以遍歷所有 20 多個模式的 SQL 查詢,而無需不斷替換search_path
。 我已經嘗試過UNION ALL
但在大多數情況下,分離查詢可能會花費我通過不難寫的模式節省的所有時間。 查詢本身可以是非常基本的,例如:
SELECT *FROM schm1.table1
UNION ALL
SELECT *FROM schm2.table1
謝謝您的幫助!
“不可能的事等你完成,請給奇跡兩天的時間”。
恐怕你想要實現的只能通過SQL生成SQL來完成:
SELECT
CASE ROW_NUMBER() OVER(ORDER BY table_schema)
WHEN 1 THEN ''
ELSE 'UNION ALL '
END
||'SELECT * FROM '
||table_schema
||'.'
||table_name
|| CASE ROW_NUMBER() OVER(ORDER BY table_schema DESC)
WHEN 1 THEN ';'
ELSE CHR(10)
END
FROM tables
WHERE table_name='d_teas_scd'
ORDER BY table_schema
;
我用d_teas_scd
作為 table_name 得到的是:
SELECT * FROM flatt.d_teas_scd
UNION ALL SELECT * FROM public.d_teas_scd
UNION ALL SELECT * FROM star.d_teas_scd;
它不能保證所有同名的表都具有相同的結構,但這就是結果查詢可能失敗的原因——這是你的責任......
玩得開心
理智的馬可
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.