You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hasura中创建PostgreSQL触发器函数时INSERT INTO报语法错误求助

问题排查与解决方案

你的触发器函数本身语法没有错误,错误根源来自换行符转义和Hasura执行器的解析逻辑:

核心原因

你提交的SQL代码里携带了Windows系统的换行标识\r(回车符),从数据库日志可以看到每一行语句末尾都带了\r字符,PostgreSQL的SQL解析器会把这个未被正确转义的字符识别为非法的\开头语法,因此抛出syntax error at or near "\"的报错。
仅当函数包含INSERT语句时才触发报错的原因是:INSERT语句处于函数体的中间位置,异常的\r字符刚好落在语法解析的关键节点,触发行级语法校验规则,没有INSERT的短函数不会触发该类解析异常。

修复步骤

  • 先将你写的SQL代码复制到纯文本编辑器(如VS Code、Sublime Text),将编辑器右下角的换行符格式从CRLF(Windows格式)切换为LF(Unix格式),清除所有冗余的\r字符
  • 打开Hasura的SQL执行控制台,执行前取消勾选「Use prepared statements(使用预编译语句)」选项,该选项在处理多行PL/pgSQL代码时极易出现特殊字符转义异常
  • 将修改换行符后的代码复制到控制台执行即可完成函数创建

内容的提问来源于stack exchange,提问作者doh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:48:00