0

例を見るときに怠惰になろうとする

SELECT realestate.address, realestate.parcel, s.sale_year, s.sale_amount, 
        FROM realestate INNER JOIN 
                dblink('dbname=somedb port=5432 host=someserver 
                user=someuser password=somepwd',
                'SELECT parcel_id, sale_year, 
                    sale_amount FROM parcel_sales')
            AS s(parcel_id char(10),sale_year int, sale_amount int)

表から AS セクションを埋める方法はありますか?

異なるサーバーにある同じ名前と構造のテーブルからデータをコピーしています。既存のテーブルからコピーする構造を取得できれば、多くの時間を節約できます

ありがとうブルース

4

1 に答える 1

3

答えは: いいえ。ドキュメントを参照してください:

dblink は任意のクエリで使用できるため、特定の列セットを指定するのではなく、レコードを返すように宣言されています。これは、呼び出し元のクエリで期待される列のセットを指定する必要があることを意味します — そうしないと、PostgreSQL は何を期待すべきかを認識できません。

http://www.postgresql.org/docs/9.1/static/contrib-dblink-function.html


編集:ちなみに、テーブルまたはビューの場合、最初のクエリでフィールド名とタイプを取得できます:

select column_name 
from information_schema.columns
where table_name = 'your_table_or_view';

その後、それを使用してフィールド宣言を埋めることができます。

アレクシス

于 2012-05-15T07:01:05.807 に答える