这是我的 SQL:
UPDATE "CET_User"
SET "Property" = jsonb_set("Property",
'{"Tid"}',
'9323fce7-416e-40be-802f-ee173f246907')
WHERE ("Property" - >> 'Tid') = '33bc69e8-0715-4b86-8611-67070c5c744d';
当我尝试运行它时,它得到一个 * 错误 *:
ERROR: invalid input syntax for type json
LINE 13: ...SET "Property" = jsonb_set("Property",'{"Tid"}', '9323fce7-...
^
DETAIL: Token "9323fce7" is invalid.
CONTEXT: JSON data, line 1: 9323fce7...
- 参考 *:
https://www.postgresql.org/docs/15/functions-json.html
我认为我使用了正确的语法,是否发现了任何错误?
1条答案
按热度按时间flseospp1#
考虑一下这个值
'9323fce7-416e-40be-802f-ee173f246907'
,jsonb_set
函数需要一个jsonb
值,这样它就可以尝试转换成这个值。与
SELECT '9323fce7-416e-40be-802f-ee173f246907'::jsonb
类似,您需要将其指定为字符串SELECT '"9323fce7-416e-40be-802f-ee173f246907"'::jsonb
因此,答案是
UPDATE "CET_User" SET "Property" = jsonb_set("Property",'{"Tid"}', '"9323fce7-416e-40be-802f-ee173f246907"') WHERE ("Property"->>'Tid') = '33bc69e8-0715-4b86-8611-67070c5c744d';