在Postgres裏,你可以使用dblink
像這樣鏈接到你的其他數據庫:可能使用PostgreSQL類型來定義一個dblink表?
SELECT *
FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select * from table'
) AS users([insert each column name and its type here]);
但是,這是相當冗長。
我使用dblink_connect
和dblink_disconnect
從我的dblink
查詢中抽象出連接字符串,縮短了它的範圍。但是,這仍然給我提供了手動表定義(即[insert each column name and its type here]
)。
而不是手動定義表,有沒有一種方法可以用TYPE
或其他任何可重複使用的方法來定義它?
在我的情況下,我必須加入的遠程表的數量和所涉及的列數使得我的查詢非常龐大。
我試圖沿着線的東西:
SELECT *
FROM dblink (
'myconn',
'select * from table'
) AS users(postgres_pre_defined_type_here);
但我收到以下錯誤:
ERROR: a column definition list is required for functions returning "record"
不幸的是,我不認爲有任何方式使用類型爲列定義列表返回'RECORD'功能。 –
記錄可能會轉換爲衆所周知的行類型。但是一套記錄不能,AFAIK。 –