0
我希望能夠編寫一個SQL查詢,通過所有20+模式,而不需要經常更換search_path
。我試過UNION ALL
,但在大多數情況下,分隔查詢可能需要我不費力地編寫模式而節省了所有時間。查詢本身可以是非常基本的,例如:爲多個模式運行相同的SQL查詢
SELECT *FROM schm1.table1
UNION ALL
SELECT *FROM schm2.table1
謝謝您的協助!
我希望能夠編寫一個SQL查詢,通過所有20+模式,而不需要經常更換search_path
。我試過UNION ALL
,但在大多數情況下,分隔查詢可能需要我不費力地編寫模式而節省了所有時間。查詢本身可以是非常基本的,例如:爲多個模式運行相同的SQL查詢
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;
它可以」保證所有具有相同名稱的表具有相同的結構,但是,這就是爲什麼產生的查詢可能失敗 - 這是你的責任...
Happy playing
Marco the Sane
你用什麼db explorer?或者你以後如何保存結果?複製+粘貼?! –