如何设置变量JSON键
How to set variable JSON key
当键是变量时,如何为 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)
当键是变量时,如何为 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)