在postgres/postgresql/psql中注释字符/字符?

rus*_*spy 41 postgresql

postgres中评论的特征是什么?

SELECT * FROM my_table     # pound  sign produces a syntax error
Run Code Online (Sandbox Code Playgroud)

谢谢你cababunga,以下似乎工作:

SELECT * FROM my_table     -- this is my comment
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

\dt jvcurve_thin.jvcurve_results    --  my comment #2
Run Code Online (Sandbox Code Playgroud)

\ dt:额外的参数" - "被忽略了

Tre*_*reg 60

根据PostgreSQL文档,有内联和块样式注释.

内嵌样式:

SELECT 23 AS test  -- this is just a test
Run Code Online (Sandbox Code Playgroud)

样式:

/* The following is a very
 * non-trivial SQL code */
SELECT 42 AS result
Run Code Online (Sandbox Code Playgroud)

  • 他询问如何在 psql 交互式控制台脚本中进行评论(即包括评论其反斜杠元命令,这是技巧),而不是如何评论常规 Postgres SQL。 (2认同)

cab*_*nga 19

在SQL中,注释以--.

  • 大多数数据库也允许C风格的注释,但我不确定哪个(如果有的话)SQL标准规定了它们:`/*comment*/` (3认同)

cje*_*nek 9

它看起来并不支持其特定的“斜杠命令”中的psql传统行尾注释。- 这些在PostgreSQL psql 文档中称为元命令--psql

但是,如果您同意在执行时显示行尾注释,则 using\echo似乎是一种有效的解决方法。例如:

\dt jvcurve_thin.jvcurve_results   \echo my comment #2
Run Code Online (Sandbox Code Playgroud)

“双斜杠”分隔符元命令看起来像是另一种可能性(并且没有回显的副作用)。用它开始一个新命令并立即开始--评论:

\dt jvcurve_thin.jvcurve_results   \\ -- my comment #2
Run Code Online (Sandbox Code Playgroud)

最后,切换到 shell 并添加 shell 注释似乎是另一种可能性:

\dt jvcurve_thin.jvcurve_results   \! # my comment #2
Run Code Online (Sandbox Code Playgroud)

  • 哦耶。看来还可以。它仍然引入了一些_不同_的行为。当在 psql 交互式控制台中输入双破折号时,注释命令和直接跟随的命令将被收集并与下一个(注释破坏)非注释命令一起存储到历史记录中 - 类似于多行注释。双反斜杠与双破折号组合的工作方式不同,即注释不是用以下命令编译的。尽管我会考虑所有这些想要的行为,但我并不觉得它特别直观。所以要注意;) (2认同)

vit*_*y-t 6

来自官方文档:PostgreSQL Comments

注释是一系列以双破折号开头并延伸到行尾的字符,例如:

-- This is a standard SQL comment
Run Code Online (Sandbox Code Playgroud)

或者,可以使用 C 风格的块注释:

/* multiline comment  * with nesting: /* nested block comment */  */
Run Code Online (Sandbox Code Playgroud)

其中注释以 /* 开始并扩展到匹配的 */。这些块注释嵌套在 SQL 标准中,但与 C 不同,因此可以注释掉可能包含现有块注释的较大代码块。

在进一步语法分析之前从输入流中删除注释,并有效地替换为空格。

自黑暗时代(7.0 版)以来,它一直以相同的方式得到支持。