使用触发器函数将 jsonb 插入表时出错



我目前正在插入此数据{"curr": "testcurr","nm": "testnm"}到视图。

然后运行触发器函数以插入到原始表中。

我收到触发器函数column "curr" does not exist的错误。

这是我的代码的一部分:

IF (tg_op = 'INSERT') THEN
NEW."dat"= jsonb_build_object("curr",NEW."curr","symb",NEW."symb");
NEW."ct"=now();
INSERT INTO data.tbl
(
"nm",
"dat",
"ct",
)
VALUES
(
NEW."nm",
NEW."dat"
NEW."ct"
)returning "id" into NEW.id;
END

如您所见,原始表不包含"curr"列,但我的帖子数据应该没有任何问题吧?

更改:

jsonb_build_object("curr",NEW."curr","symb",NEW."symb")

自:

jsonb_build_object('curr',NEW."curr",'symb',NEW."symb")

https://www.postgresql.org/docs/current/static/functions-json.html 查看示例 - 要获取密钥"foo"传递字符串'foo'

双引号用于标识符 - 列、关系等名称 - 检查 https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

最新更新