【问题标题】:CREATE VIEW in PostGIS from node.js results in a table从 node.js 在 PostGIS 中创建视图会生成一个表
【发布时间】:2016-08-29 21:18:24
【问题描述】:

我正在尝试从 node.js 在 PosGIS 2.1.2 中创建空间视图。我尝试使用 knex (0.7.6) 和 pg (4.3.0),但每次运行查询时都会在数据库中创建一个表而不是视图。

这是我使用的 SQL 语句:

CREATE VIEW my_view AS
  SELECT DISTINCT a.*
  FROM layer_1 AS a, layer_2 AS b
  WHERE ST_DWithin(a.geom, b.geom, 10);

我做错了什么?

我想创建一个视图的原因是在layer_1layer_2 被修改时保持my_view 的更新。

编辑

请放弃这个问题!我发现问题不是我上面描述的。事实上,问题在于我首先使用了 CREATE TABLE 查询,然后将其更改为 CREATE VIEW 查询,但服务器中的代码未正确更新。

【问题讨论】:

  • 有什么证据证明它是一个创建的表?
  • @e4c5 查询结果列在“INFORMATION_SCHEMA.tables”下,而不是“INFORMATION_SCHEMA.views”下。当我直接在数据库中运行查询时,结果列在“INFORMATION_SCHEMA.views”中。
  • 谢谢证明!

标签: node.js postgresql postgis sql-view knex.js


【解决方案1】:

试试这个:

创建视图 my_view AS ( 选择不同的 一种。* FROM layer_1 a 加入 layer_2 b ON st_DWithin(a.geom, b.geom, 10) );

使用几何时,最好使用 INNER JOIN 而不是 WHERE。

【讨论】:

  • 由于原始查询是隐式连接,这不等同于原始查询吗?
  • 谢谢!我厌倦了这个,但同样的问题仍然存在。
猜你喜欢
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 2023-03-30
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多