Dollar quoting

一种特殊的字符串引用语法

美元引用是一种特殊的字符串引用语法,用于避免单引号和反斜杠等字符转义带来的问题。

美元引用PostgreSQL 8.0中被添加。

用法

在标准SQL中,字符串常量中的单引号需要加倍,这样字符串才能被正确解析,例如:

postgres=# SELECT 'PostgreSQL''s powerful string functions';
                ?column?                
----------------------------------------
 PostgreSQL's powerful string functions
(1 row)

虽然这对于短字符串可能不是什么大问题,但对于长文本来说很快就会成为一个问题。 美元引用提供了一种解决方法,通过将文本用一对美元符号($$)括起来。

postgres=# SELECT $$PostgreSQL's powerful string functions$$;
                ?column?                
----------------------------------------
 PostgreSQL's powerful string functions
(1 row)

包含在美元引用中的文本被视为字符串字面量,即不需要转义(也无法进行转义)。

标签

可以提供一个可选的“标签”,由一个或多个任意字符组成,以创建一对唯一的引用(如果字符串包含可能被解释为美元引用的字面量,则需要标签),例如:

postgres=# SELECT $foo$PostgreSQL's dollar quoting with '$$' or e.g. '$bar$' is convenient $foo$;
                               ?column?                               
----------------------------------------------------------------------
 PostgreSQL's dollar quoting with '$$' or e.g. '$bar$' is convenient 
(1 row)

标签可以是任何有效的字符序列,它遵循与未加引号的标识符相同的规则,即除了下划线(_)之外,不能包含ASCII符号,包括美元符号($)本身,并且不能以ASCII数字开头。

以下是有效的美元引用标签示例:

  • $$abc$$
  • $$abc123$$
  • $$_$$
  • $$ほげ$$
  • $$1$$(全角字符)
  • $$;$$(全角字符)

以下是无效的美元引用标签示例:

  • $$123abc$$
  • $$;$$
  • $$abc+$$
  • $$ $$(空格)

注意:其中许多不会被psql解释。

变更历史

反馈

提交任何有关“美元引用”的评论、建议或更正请在此处 提交