CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
以上代码取自Postgresql网站。但是我不明白为什么使用$$
。我在网上看到过多个例子,但实际上并没有解释为什么会这样。或者甚至是必要的?
答案 0 :(得分:5)
create function
声明
定义
定义函数的字符串常量;意思取决于语言。它可以是内部函数名,目标文件的路径,SQL命令或过程语言中的文本。
使用美元引用 (参见第4.1.2.4节)编写函数定义字符串,而不是正常的单引号语法通常很有帮助。如果没有美元引用,函数定义中的任何单引号或反斜杠都必须通过加倍来转义。
Section 4.1.2.4 explains the dollar quoting:
美元引用的字符串常量包含美元符号($),零个或多个字符的可选“标记”,另一个美元符号,构成字符串内容的任意字符序列,美元符号,同样的标签开始这个美元报价,和一个美元符号。例如,以下是使用美元引用
指定字符串“Dianne's horse”的两种不同方法