不能在PostgreSQL 9.2中使用pgRouting函数

时间:2014-04-17 08:47:58

标签: postgresql postgresql-9.2 postgresql-8.4 pgrouting

我有3个pgRouting sql文件,

  • routing_core
  • routing_core_wrappers
  • routing_topology

我在PostgreSQL 9.2的第一个中运行代码,我收到了这个错误,

enter image description here

PS。虽然在9.2的扩展中已经有pgRouting函数,但我仍然无法运行以下代码,

ALTER TABLE tc_2000_w_area ADD COLUMN source integer;
ALTER TABLE tc_2000_w_area ADD COLUMN target integer;
SELECT assign_vertex_id('tc_2000_w_area', 0.0001, 'the_geom', 'gid')

收到错误

>>> 

Traceback (most recent call last):
  File "C:/Users/Heinz/Desktop/python_test/any_test.py", line 12, in <module>
    cur.execute(query)
ProgrammingError: 錯誤:  函式 assign_vertex_id(unknown, numeric, unknown, unknown) 不存在
LINE 4:     SELECT assign_vertex_id('tc_2000_w_area', 0.0001, 'the_g...
                   ^
HINT:  沒有符合指定之名稱和參數型別的函式。您可能需要加入明確型別轉換。

所以我想先运行上面的3个sql文件。

但我可以在PostgreSQL 8.4中运行所有3个sql文件

我正在使用Windows 8.1 x64下的PostgreSQL 9.2,PostgreSQL 8.4。


更新#1

我运行下面的代码,但显示错误消息,

create extension pgrouting;

錯誤:  擴充功能 "pgrouting" 已存在

********** 錯誤 **********

錯誤: 擴充功能 "pgrouting" 已存在
SQL 狀態: 42710

错误消息表示pgRouting扩展已存在,但如果我直接使用原始帖子中的代码,则会收到与我发布的相同的错误。

1 个答案:

答案 0 :(得分:0)

你必须在pgrouting之前安装postgis。

create extension postgis;

create extension pgrouting;

然后你应该可以使用它。