我试图在几行中连接一个较长的注释,以保持我的代码整洁,但惊讶地发现我做不到。例如,以下代码在管道处返回语法错误:
COMMENT ON VIEW my_view IS 'foo' || 'bar';
评论有什么特别之处吗?
答案 0 :(得分:2)
The documentation解释了该参数:
新注释,以字符串文字形式表示;或
NULL
删除评论。
因此,您不能在该位置只有一个常量。
幸运的是,SQL标准已将相邻的字符串文字串联在一起,因此您可以编写
COMMENT ON VIEW my_view IS 'foo'
'bar';
答案 1 :(得分:2)
documentation指出仅允许文本,不允许使用表达式:
评论 { 访问方法object_name | ... 查看object_name }是“ 文本”
请注意文本周围的引号。但您可以为此使用动态创建的语句:
DO $$
BEGIN
EXECUTE FORMAT('COMMENT ON VIEW myview IS %L', 'A very long ' || 'comment');
END
$$ LANGUAGE PLPGSQL;