美元引用

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

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

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

更改历史记录

反馈

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