检查是否存在具有给定名称的 PostGIS 拓扑

Check if a PostGIS topology with a given name exists

如何测试具有给定名称的 PostGIS topology 是否存在? 我不想 运行 在创建拓扑时出错:

SELECT topology.CreateTopology('topology_name', 1);

您可以尝试使用条件表达式和topology.GetTopologyID,例如:

SELECT COALESE(topology.GetTopologyID('topology_name'), topology.CreateTopology('topology_name', 1)) AS topo_id;
SELECT topology.CreateTopology('topology_name', 1)
WHERE NOT EXISTS ( 
  SELECT * FROM topology.topology WHERE name = 'topology_name' 
);

我假设您有一条带有 SRID=1 的自定义 spatial_ref_sys 记录,否则创建语句会因找不到 SRID.

而失败