美元引用

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

美元引用是一种特殊的字符串引用语法,用于避免与转义字符(如单引号和反斜杠)相关的問題。

美元引用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解释。

更改历史

反馈

在此提交关于"美元引用"的任何评论、建议或更正 此处