postgresql“而不是”错误

Posted

技术标签:

【中文标题】postgresql“而不是”错误【英文标题】:postgresql "instead of" error 【发布时间】:2014-06-02 11:17:32 【问题描述】:

我之前遇到过这个问题,但无法正确提出我的问题。

这是我在 postgresql 中创建的触发器

  CREATE TRIGGER mytrigger
      INSTEAD OF UPDATE
      ON schemename.viewname
      FOR EACH ROW
      EXECUTE PROCEDURE schemename.functioninthisschemename();

如果我在本地测试数据库上执行此操作,则此操作有效,但在服务器上它会引发错误:

错误:“INSTEAD”第 2 行或附近的语法错误:INSTEAD OF UPDATE

你能解释一下,为什么会出现这个错误?

【问题讨论】:

【参考方案1】:

我的猜测是这是 Postgres 中的版本问题。

Postgres 9.1 支持“代替”触发器。见here。

Postgres 9.0 及更早版本不支持“代替”触发器。见here。

【讨论】:

看起来很公平...那我该如何触发视图呢? @AlexanderCapone 。 . . Postgres 9.1 之前不支持该功能。这是关于这个主题的另一个问题:***.com/questions/451096/execute-trigger-on-view.

以上是关于postgresql“而不是”错误的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql 服务器上名为 postgres 的默认数据库

使用 JDBC 插入 PostgreSQL 时间类型时出错

Laravel 5 + PostgreSQL:“未配置数据库 [postgres]。”错误

postgres 错误:Postgresql 11.6 中的列不存在错误

Postgres 错误方法 org.postgresql.jdbc.PgConnection.createClob() 未实现

与 postgres 和套接字“/var/run/postgresql/.s.PGSQL.5432”相关的引擎场错误