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

以上代码取自 Postgresql 网站。但是我不明白为什么$$要使用。我在网上的多个示例中看到了它,但没有一个真正解释了为什么使用它。还是有必要?

4

1 回答 1

8

从声明手册create function

定义

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

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

第 4.1.2.4 节解释了美元报价

一个美元引用的字符串常量由一个美元符号 ($)、一个可选的零个或多个字符的“标签”、另一个美元符号、构成字符串内容的任意字符序列、一个美元符号、相同的标签组成开始这个美元报价,和一个美元符号。例如,这里有两种使用美元引用来指定字符串“Dianne's horse”的不同方法

于 2015-07-08T06:52:45.583 回答