如何在PostgreSQL的psql命令行工具中注解特殊的\命令?

57hvy0tb  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(5)|浏览(158)

psql中,以\开头的特殊命令的注解字符是什么?
以下方法似乎有效:

SELECT * FROM my_table     -- this is my comment

但这并不奏效:

\dt jvcurve_thin.jvcurve_results    --  my comment #2

\dt:已忽略额外的参数“--”

9njqaruj

9njqaruj1#

根据PostgreSQL文档,有行内和块样式注解。

内联样式:

SELECT 23 AS test  -- this is just a test

样式:

/* The following is a very
 * non-trivial SQL code */
SELECT 42 AS result
pjngdqdw

pjngdqdw2#

在SQL中,注解以--开头。

qv7cva1a

qv7cva1a3#

从官方文件来看:PostgreSQL注解。
注解是以双划线开头并延伸到行尾的一系列字符,例如:

-- This is a standard SQL comment

或者,可以使用C样式块注解:

/* multiline comment  * with nesting: /* nested block comment */  */

其中注解以/* 开始,并扩展到匹配的 */。这些块注解按照SQL标准中的指定嵌套,但与C不同,这样可以注解掉可能包含现有块注解的较大代码块。
注解在进一步语法分析之前从输入流中移除,并被空白有效地替换。
而且从黑暗时代(7.0版本)开始,它就一直以同样的方式得到支持。

2ekbmq32

2ekbmq324#

看起来psql在其特定于psql的“斜杠命令”中不支持传统的行尾--注解。--这些在PostgreSQL psql documentation中被称为元命令
但是,如果您不介意在执行时显示行尾注解,那么使用\echo似乎是一种有效的解决方法。

\dt jvcurve_thin.jvcurve_results   \echo my comment #2

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

\dt jvcurve_thin.jvcurve_results   \\ -- my comment #2

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

\dt jvcurve_thin.jvcurve_results   \! # my comment #2
bq3bfh9z

bq3bfh9z5#

在PostgreSQL pgAdmin 4中最好选择并按Ctrl+Shift+/来注解多行

相关问题