如何设置变量JSON键



如何将值设置为JSON对象中的键,当键是变量时?

我有一个函数,代码如下:

CREATE OR REPLACE FUNCTION on_text_key_insert() RETURNS trigger AS  $$
...
UPDATE t_text SET all_keys->NEW.key = NEW.value
     WHERE node = NEW.node;

这会产生错误:

CREATE FUNCTION
ERROR:  syntax error at or near "->"
LINE 6:  UPDATE t_text SET all_keys->NEW.key = NEW.value

医生说使用->,我正在使用它!为什么它不起作用?

假设NEW.value为字符串:

SET all_keys = jsonb_set(all_keys, ARRAY[NEW.key], ('"'||NEW.value||'"')::jsonb)

最新更新