试着在看一个例子时表现懒散
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部分吗?
我在不同的服务器上从同名和同结构的表中复制数据。如果我能够从现有的表中复制结构,它将节省我大量的时间。
谢谢布鲁斯
发布于 2012-05-15 07:01:05
答案是:不。见医生:
由于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';然后您可以使用它来填充字段声明。
亚历克西斯
https://stackoverflow.com/questions/10595560
复制相似问题