Postgresql函数中的“$$”是什么意思?

时间:2015-07-08 06:47:04

标签: postgresql dollar-sign

CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
        BEGIN
                RETURN i + 1;
        END;
$$ LANGUAGE plpgsql;

以上代码取自Postgresql网站。但是我不明白为什么使用$$。我在网上看到过多个例子,但实际上并没有解释为什么会这样。或者甚至是必要的?

1 个答案:

答案 0 :(得分:5)

对于create function声明

From the manual

  

定义

     

定义函数的字符串常量;意思取决于语言。它可以是内部函数名,目标文件的路径,SQL命令或过程语言中的文本。

     

使用美元引用 (参见第4.1.2.4节)编写函数定义字符串,而不是正常的单引号语法通常很有帮助。如果没有美元引用,函数定义中的任何单引号或反斜杠都必须通过加倍来转义。

Section 4.1.2.4 explains the dollar quoting

  

美元引用的字符串常量包含美元符号($),零个或多个字符的可选“标记”,另一个美元符号,构成字符串内容的任意字符序列,美元符号,同样的标签开始这个美元报价,和一个美元符号。例如,以下是使用美元引用

指定字符串“Dianne's horse”的两种不同方法