【问题标题】:Is there a way to link (not import!) a dbf table into a PostgreSQL database?有没有办法将 dbf 表链接(而不是导入!)到 PostgreSQL 数据库?
【发布时间】:2020-09-17 19:44:12
【问题描述】:

我需要将外部 dbf 表链接到现有的 PostgreSQL 数据库。我设法将该表导入 PostgreSQL,但这会创建一个副本并因此产生冗余数据。 dbf 表是 shapefile 的属性表,但我不需要它的空间方面。 该练习是将数据从 MS Access 数据库移动到 PostgreSQL 的项目的一部分,希望随后可以从 QGIS 访问数据。 dbf 表目前已链接到 MS Access 数据库并用于我想在 PostgreSQL 中重新构建的查询(视图)。 我发现很多关于将 dbf 表导入的帖子,但没有任何关于链接 dbf 表的帖子。我得到的最接近的是 Foreign Data Wrapper,但我没有设法将它用于我的目的。我正在使用 PostgreSQL 和 pgAdmin 4.24。

非常感谢

【问题讨论】:

  • 如果你为它写一个foreign data wrapper 是的。除了可以使用基于 ODBC 的 dBase 驱动程序的 ODBC FDW 之外,没有看到现有的。
  • 我所知道的最接近的是pgsql-ogr-fdw。但它适用于整个 shapefile。
  • 就个人而言,我会尝试完全消除 shapefile 并将所有内容存储在 postgresql / postgis 中。对我来说,这是 postgres 的主要好处 - 您可以替换 Access 和 shapefile,在一个地方管理所有数据,并使用链接到 postgres 的 QGis 来可视化您的数据。
  • 嗨,Brian 和 Adrian,我担心有人会建议 fdw。我已经看过它,但没有设法让它对我有用。理想情况下,我会在某处找到一个 dbase 文件的示例。我会进一步调查,可能会提出更多问题。
  • 您好,不幸的是,到目前为止,我所看到的 PostgreSQL 无法替代 Access。 PostgreSQL 只是一个没有前端(表单等)的数据库后端。我将把它用作我的 MS Access 数据库的后端,这样数据就可以通过 PostgreSQL 提供给 QGIS 和其他非 MS 世界。当我确定我可以在 QGIS 中执行我在 ArcView 中可以执行的操作时,我可能会在某个时候将 shapefile 传输到 PostgreSQL。

标签: postgresql postgis dbase


【解决方案1】:

该练习是将数据从 MS Access 数据库移动到 PostgreSQL 的项目的一部分,希望随后可以从 QGIS 访问数据。

如果您必须使用 PostgreSQL 才能从 QGIS 访问您的空间数据,我认为除了将 shapefile 导入 PostgreSQL (PostGIS) 之外别无选择。如果出于某种原因您不需要几何图形,您可以将 importing the shapefile 之后的几何图形列放到数据库中:

ALTER TABLE table_name DROP COLUMN column_name;

替代方案:

如果我们讨论的是静态 shapefile 而您真的需要使用 PostgreSQL,您可以使用 GeoServer 通过Web Feature Service (WFS) 发布此 shapefile - 它位于至少我在小项目中所做的。最简单的选择是将 shapefile 复制到所谓的 GeoServer Data Directory 中,然后发布它们。之后,您就可以使用其WFS Client 从 QGIS 访问数据。

【讨论】:

  • 嗨,Jim,shapfile 是 Union 的产品,会经常更新。因此,任何导入都无济于事。顺便说一句,我已经设法通过 MS Access 将数据导入 PostgreSQL。我需要的是链接而不是副本。感谢您提供有关删除几何图形的提示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 2020-12-07
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多