Я пытаюсь использовать следующую функцию;ОШИБКА: функция addgeometrycolumn не уникальна
SELECT Assign_vertex_id('ways', 0.00001, 'the_geom', 'gid')
, но по какой-то причине он дает мне следующую ошибку;
NOTICE: CREATE TABLE will create implicit sequence "vertices_tmp_id_seq" for serial column "vertices_tmp.id"
CONTEXT: SQL statement "CREATE TABLE vertices_tmp (id serial)"
PL/pgSQL function "assign_vertex_id" line 15 at EXECUTE statement
ERROR: function addgeometrycolumn(unknown, unknown, integer, unknown, integer) is not unique
LINE 1: SELECT addGeometryColumn('vertices_tmp', 'the_geom', 4326, '...
^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
QUERY: SELECT addGeometryColumn('vertices_tmp', 'the_geom', 4326, 'POINT', 2)
CONTEXT: PL/pgSQL function "assign_vertex_id" line 24 at EXECUTE statement
********** Error **********
ERROR: function addgeometrycolumn(unknown, unknown, integer, unknown, integer) is not unique
SQL state: 42725
Hint: Could not choose a best candidate function. You might need to add explicit type casts.
Context: PL/pgSQL function "assign_vertex_id" line 24 at EXECUTE statement
Теперь от того, что я нашел, что это должно быть что-то со старыми подписями PostGIS around.Infect, когда я запускал следующую команду;
select proname, proargnames from pg_proc where proname = 'addgeometrycolumn';
В результате это;
pg_proc returns 6 rows.
Three rows with column proargnames returning a blank or (null) value
Может кто-нибудь мне помочь? Это что-то, что связано со старыми значениями postgis? если да, то как я могу это исправить?
Благодаря
Вы имеете в виду что-то вроде этого? = SELECT Assign_vertex_id ('ways' :: text, 0.00001 :: numeric, 'the_geom' :: text, 'gid' :: numeric. Извините, но я новичок в этих функциях. –
@Ryan: Ваша функция 'Assign_vertex_id()' явно (прямо или косвенно) вызывает другую функцию: 'addgeometrycolumn()', и проблема заключается в этом вызове функции, - как ясно указано в сообщении об ошибке. Похоже, он вызывается в процессе создания таблицы автоматически. Поэтому вам нужно удалить одну из дополнительных копий 'addgeometrycolumn()' из вашей системы или добавить приведение типов к вызову в 'Assign_vertex_id()', чтобы сделать его однозначным. –
Итак, как я могу исправить проблему, лежащую в вызове функции? Спасибо за ваш ответ –