Mar*_*ton 6 postgresql database-trigger
我在运行 Ubuntu 服务器 18.04 的新机器上安装了 postgresql 和 postgresql-plpython-10(使用 apt),并且我已经将 Postgresql 数据库(使用 提取pg_dumpall)从另一台机器恢复到新机器(Linux)上。
我检查了数据库中存在trackspreadsheetnztplpy函数并且存在表nztgsheet。我在旧机器上重新运行了这个功能,它运行得很好。我查plpythonu安装使用psql的命令在新机器上:\dL。
SQL 错误:
错误:“FUNCTION”第 1 行或附近的语法错误:...H ROW WHEN (OLD.* IS DISTINCT FROM NEW.*) EXECUTE FUNCTION t... ^
在声明中:
CREATE TRIGGER trackspreadsheetnzt AFTER UPDATE ON nztgsheet FOR EACH ROW WHEN (OLD.* IS DISTINCT FROM NEW.*) EXECUTE FUNCTION trackspreadsheetnztplpy();
我希望触发器函数可以工作,但它会引发语法错误。
Nic*_*nes 10
语句的EXECUTE FUNCTION语法CREATE TRIGGER是在Postgres 11中引入的。
在Postgres 10 中,您需要改为说EXECUTE PROCEDURE。
这个语法在 Postgres 11 中被弃用,引入了procedure,它不同于函数,不能用于实现触发器。
| 归档时间: |
|
| 查看次数: |
2469 次 |
| 最近记录: |