概要:
psql [ option… ] [ dbname [ username ]]
选项:
-
-a
–echo-all
在读取所有非空输入行时将其打印到打印到标准输出(不适用于交互方式读取的行)。相当于将变量ECHO设置为all -
-A
–no-align
切换到未对齐的输出模式(默认输出模式以其它方式对齐)。 -
-b
–echo-errors
将失败的SQL命令打印到标准错误输出。相当于将变量ECHO设置为错误。 -
-c
–command = command
指定psql执行给定的命令字符串。可以使用-f选项以任何顺序和组合此选项。当任意-c或-f指定,psql不从标准输入读取命令;相反,它在按顺序处理所有-c和-f选项后终止。命令必须是服务器可完全解析的命令字符串(即不包含psql特定的功能)或单个反斜杠命令。因此不能在-c选项中混合使用SQL和psql元命令。要实现这一点,可重复使用-c选项或者将字符串传递给psql,例如:
psql -c '\ x' -c 'SELECT * FROM foo;' 或 echo '\ x \\ SELECT * FROM foo;' | PSQL (\\是分隔符元命令)
传递给-c的每个SQL命令字符串都作为单个查询发送到服务器。因此,即使字符串包含多个SQL命令,服务器也会将其作为单个事务执行,除非字符串中包含明确的BEGIN/COMMIT命令将其划分为多个事务。此外,psql仅打印字符串中最后一个SQL命令的结果。这与从文件读取相同字符串或发送到psql的标准输入时的行为不同,因为psql分别发送每个SQL命令。
将多个命令放在单个-c字符串中通常会产生意外结果。最好使用重复的-c命令或将多个命令提供给psql的标准输入
-
-d dbname
–dbname = dbname
指定要连接的数据库的名称。这相当于将 dbname指定为命令行上的第一个非选项参数
如果此参数包含=或以有效的URL前缀(postgresql://或postgres://)开头,则将其是为conninfo字符串。 -
-e
–echo-queries
将发送到服务器的所有SQL命令也复制到标准输出。这相当于变量ECHO设置为查询。 -
-E
–echo-hidden
回显\d和其他反斜杠命令生成的实际查询。可以使用它来研究psql的内部操作。这相当与将变量ECHO_HIDDEN设置为on。 -
-f filename
–file = filename
从文件filename中读取命令,而不是标准输入。可以使用-c选项以任何顺序重复和组合此选项。当任意-c或-f指定,psql不从标准输入读取命令;相反,它在按顺序处理所有-c和-f选项后终止。除此之外,此选项在很大程度上等同于元命令\i如果filename是- (连字符),则读取标准输入直到EOF只是或\q元命令。这可以用于将交互式输入与来自文件的输入交叉。但请注意,在这种情况下不能使用Readline(就像指令了-n一样)。
-
-F
–field-separator = separator
使用分隔符separator作为为对齐输出的字段分隔符。这相当与 \pset fieldsep or \f -
-h hostname
–host = hostname
指定运行服务器的计算机的主机名。如果值以斜杠开头,则将其用作Unix域套接字的目录 -
-H
–html
打开HTML表格输出。这相当于\pset format html或\H命令。 -
-l
–list
列出所有可用的数据库,然后提出。其他非连接选项将被忽略。这类似与元命令\list -
-L filename
–log-file = filename
除了正常输出目标之外,将所有查询输出写入文件filename -
-n
–no-readline
不要使用Readline进行行编辑,也不要使用命令历史记录。这在切割和粘贴时关闭标签扩展非常有用。 -
-o filename
–output = filename
将所有查询输出放入文件filename。这相当于命令\o。 -
-p port
–port = port
指定服务器正在侦听连接的TCP端口或本地Unix域套接字文件扩展名。默认PGPORT环境变量的值,如果未设置,则默认为编译时指定的端口,通常为5432。 -
-P assignment
–pset = assignment
指定打印选项,格式为\pset。请注意,必须使用等号而不是空格分隔名称和值。例如要将输出格式设置为LaTeX,可以编写为-P format = latex
-
-q
–quiet
指定psql应该静默执行其工作。默认情况下,他会打印欢迎消息和各种信息输出。如果使用此选项,则不会发生这种情况。这对-c选项很优雅。这相当于变量QUIET设置为on。 -
-R separator
–record-separator = separator
使用separator作为未对齐输出的记录分隔符。这相当与\pset recordsep命令。 -
-s
–single-step
以single-step模式运行。这意味着在将每个命令发送到服务器之前会提示用户,并且还可以选择取消执行。可使用它来调试脚本。 -
-S
–single-line
以single-line模式运行,其中换行符终止SQL命令,如同“;”。 -
-t
–tuples-only
关闭列名称和结果行计数页脚等的打印。这相当于\t命令。 -
-T table_options
–table-attr = table_options
指定要放在HTML table标记中的选项。 -
-U username
–username = username
以用户名username而不是默认用户名连接到数据库。(username必须获得许可) -
-v assignment
–set = assignment
–variable = assignment
执行变量复制,例如\set meta-command。请注意,必须在命令行上使用等号分割名称和值。要取消设置变量请不要使用等号。要设置具有控制的变量,请使用等号,但不要使用该值。这些分配是在启动的早期阶段完成的,因此为内部目的保留的变量可能会在以后被覆盖。 -
-V
–version
打印psql版本并退出。 -
-w
–no-password
永远不要发出密码提示。如果服务器需要密码身份验证,并且其他方式(如.pgpass文件)无法使用密码,则连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中非常有用。
请注意,此选项将保持为整个会话设置,因此它会影响元命令\connect的使用以及初始连接尝试。 -
-W
–password
强制psql在连接到数据库之前提示输入密码。
该选项永远不是必须的,因为如果服务器需要密码身份验证,psql将自动提示输入密码。但是,psql将浪费连接尝试,发现服务器需要密码。某些情况下值得输入-W以避免额外的连接尝试。
请注意,此选项将保持为整个会话设置,因此它会影响元命令\connect的使用以及初始连接尝试。 -
-x
–expanded
打开扩展表格式化模式。这相当于\x命令。 -
-X
–no-psqlrc
不要读取启动文件(系统范围的psqlrc文件和用户~/.psqlrc文件)。 -
-z
–record-separator-zero
将未对齐输出到记录分隔符设置为零字节。