我想遍歷postgresql數據庫的列表,並在postgresql函數中對它們運行一些查詢。下面是一個代碼示例...在postgresql函數中循環訪問數據庫
CREATE OR REPLACE FUNCTION my_function()
RETURNS VOID AS
$$
DECLARE
db VARCHAR(50); -- this declaration is where the confusion is
BEGIN
FOR db IN
SELECT datname FROM pg_catalog.pg_database WHERE datname ~ '^mydbname_'
LOOP
-- this is just an example
SELECT * FROM db;
END LOOP;
END;
$$
LANGUAGE 'plpgsql';
我知道,我可以使用PostgreSQL的EXECUTE
評估查詢作爲一個字符串(例如,EXECUTE 'SELECT * FROM ' || db || ';';
),但我的疑問是相當漫長和複雜。
有沒有辦法在postgresql中做到這一點?是否有「數據庫」聲明類型?
你是對的 - 我想要做的是從根本上錯誤的。看起來我必須將其移植到bash腳本中。謝謝! – jonas