Postgresql更新json错误,原因是“类型json的输入语法无效,标记无效,”

zpf6vheq  于 2023-01-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(546)

这是我的 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
我认为我使用了正确的语法,是否发现了任何错误?

flseospp

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';

相关问题