Postgresql触发器执行错误

Postgresql触发器执行错误,postgresql,Postgresql,我创建了一个触发器函数。当我向表中插入一行时。我犯了一个错误。Geom、k1k、k2k和pro_clustur_id默认为空。插入行时,将触发触发器。我怎样才能解决这个问题 无法执行SQL。错误:错误:函数st_point(双精度,双精度)不存在第1行:…denem_项目集geom=st_transform(st_SetGrid)(st_point(p..^提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。查询:更新denem.denem_项目集geom=st_transfo

我创建了一个触发器函数。当我向表中插入一行时。我犯了一个错误。Geom、k1k、k2k和pro_clustur_id默认为空。插入行时,将触发触发器。我怎样才能解决这个问题

无法执行SQL。错误:错误:函数st_point(双精度,双精度)不存在第1行:…denem_项目集geom=st_transform(st_SetGrid)(st_point(p..^提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。查询:更新denem.denem_项目集geom=st_transform(st_SetGrid)(st_point(project_lng,project_lat),4326),500000),其中id不为null,pro_cluster_id为null,project_lng不为null,project_lat不为null上下文:PL/pgSQL函数create_cluster_id()在SQL语句的第4行


首先,找出安装了哪个模式PostGIS

您可以在
psql
中使用

\dx postgis
或者使用SQL查询

SELECT n.nspname
FROM pg_extension x
   JOIN pg_namespace n
      ON x.extnamespace = n.oid
WHERE x.extname = 'postgis';
知道模式名称后,使用


CREATE FUNCTION…返回触发器将search\u path='schemaname'设置为…;

首先,找出安装了哪个schema PostGIS

您可以在
psql
中使用

\dx postgis
或者使用SQL查询

SELECT n.nspname
FROM pg_extension x
   JOIN pg_namespace n
      ON x.extnamespace = n.oid
WHERE x.extname = 'postgis';
知道模式名称后,使用


CREATE FUNCTION…返回触发器将search\u path='schemaname'设置为…

或者PostGIS没有安装,或者它安装在数据库用户的
search\u path
之外的架构中。PostGIS安装在没有安装PostGIS的架构中,或者它安装在
se之外的架构中数据库用户的搜索路径
。已安装Postgis