PostgreSQL:不能使用数字作为美元引用字符串的标签

PostgreSQL: Cannot use numbers as tags for dollar quoted strings

我们如何使用数字作为美元引用字符串的标签?

INSERT INTO table(user_id,user_data) 
values (22176,to_jsonb(3${"name": "Helo. $ what is this $"}3$::jsonb))

上面的查询失败了,但是如果我用字母替换数字标签就可以了。我在文档中没有找到任何反对使用数字标记的内容。

我需要让我的标签尽可能独特,因为我试图避免 jsonb 中的用户内容与我的标签匹配的情况,例如

$abc${"name": "hello $abc$"}$abc$

我尝试使用 UUID,但它不接受数字作为标签。

注意: 这是一个示例查询,我的 json 值中有很多 '

您不能使用3$,因为PostgreSQL 使用</code>、<code> 等作为准备语句中的占位符。 $a1$ 可以的。

要获得罕见的字符串以避免冲突,请在键盘上敲击几次并确保不要先敲到数字。