GoGPT Best VPN GoSearch

OnWorks 网站图标

psql - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 psql

这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管服务提供商中运行的命令 psql

程序:

您的姓名


psql - PostgreSQL 交互式终端

概要


psql的 [选项...] [DBNAME [用户名]]

商品描述


psql 是一个基于终端的 PostgreSQL 前端。 它使您能够输入查询
以交互方式,将它们发布到 PostgreSQL,并查看查询结果。 或者,输入
可以来自文件。 此外,它还提供了许多元命令和各种
类似于 shell 的功能,以方便编写脚本和自动化各种任务。

配置


-a
--全部回显
在读取时将所有非空输入行打印到标准输出。 (这不
适用于交互式读取的行。)这相当于设置变量 ECHO
所有。

-A
--不对齐
切换到非对齐输出模式。 (默认输出模式以其他方式对齐。)

-b
--回声错误
将失败的 SQL 命令打印到标准错误输出。 这相当于设置
变量 ECHO 到错误。

-c 命令
--命令=命令
指定 psql 执行一个命令串, 命令,然后退出。 这是
在 shell 脚本中很有用。 启动文件(psqlrc 和 〜/.psqlrc) 被忽略
选项。

命令 必须是服务器可以完全解析的命令字符串
(即,它不包含特定于 psql 的功能),或单个反斜杠命令。 这样你
不能将 SQL 和 psql 元命令与此选项混合使用。 为了实现这一点,你可以
将字符串通过管道传输到 psql,例如:echo '\x \\ SELECT * FROM foo;' | psql。 (\\ 是
分隔符元命令。)

如果命令字符串包含多个 SQL 命令,它们将在单个
交易,除非有明确的 BEGIN/犯罪 包含在字符串中的命令
将其分成多个事务。 这与当
相同的字符串被馈送到 psql 的标准输入。 另外,只有最后一条 SQL 的结果
命令被返回。

由于这些遗留行为,将多个命令放入 -c 绳子
往往会有意想不到的结果。 最好将多个命令提供给 psql 的标准
输入,要么使用如上所示的 echo,要么通过 shell here-document,用于
例:

psql <
\x
选择 * 从 foo;
EOF

-d DBNAME
--数据库名=DBNAME
指定要连接的数据库的名称。 这相当于指定
DBNAME 作为命令行上的第一个非选项参数。

如果此参数包含 = 符号或以有效的 URI 前缀开头 (postgresql://
或 postgres://),它被视为 信息 细绳。 见第 31.1.1 节,“连接
字符串”,在文档中获取更多信息。

-e
--echo查询
将发送到服务器的所有 SQL 命令也复制到标准输出。 这是
相当于设置变量 ECHO 到查询。

-E
--回声隐藏
回显由生成的实际查询 \d 和其他反斜杠命令。 你可以用这个
研究psql的内部操作。 这相当于设置变量
回声隐藏 继续。

-f 文件名
--文件=文件名
使用文件 文件名 作为命令的来源而不是读取命令
交互地。 处理完文件后,psql 终止。 这在很多方面
相当于元命令 \i.

If 文件名 是 -(连字符),然后读取标准输入直到出现 EOF 指示或 \q
元命令。 但是请注意,在这种情况下不使用 Readline(就像 -n 民政事务总署
已指定)。

使用这个选项与编写 psql 有微妙的不同 文件名. 一般来说,两者
会做你所期望的,但使用 -f 会启用一些不错的功能,例如错误
带有行号的消息。 使用此选项也有很小的机会
减少启动开销。 另一方面,使用外壳输入的变体
重定向(理论上)保证产生完全相同的输出
如果您手动输入所有内容,则收到。

-F 分离器
--字段分隔符=分离器
使用 VHDL 语言编写 分离器 作为未对齐输出的字段分隔符。 这相当于 \pset
字段 or \f.

-h 主机
--主机=主机
指定运行服务器的机器的主机名。 如果值
以斜杠开头,用作 Unix 域套接字的目录。

-H
--html
打开 HTML 表格输出。 这等效于 \pset 格式的 html 或 \H
命令。

-l
- 列表
列出所有可用的数据库,然后退出。 其他非连接选项将被忽略。
这类似于元命令 \列表.

-L 文件名
--日志文件=文件名
将所有查询输出写入文件 文件名, 除了正常输出
目的地。

-n
--无读线
不要使用 Readline 进行行编辑,也不要使用命令历史记录。 这可以
在剪切和粘贴时关闭选项卡扩展很有用。

-o 文件名
--输出=文件名
将所有查询输出放入文件 文件名. 这相当于命令 \o.

-p 端口
--端口=端口
指定 TCP 端口或本地 Unix 域套接字文件扩展名
服务器正在侦听连接。 默认为 PG端口 环境
变量,如果未设置,则为编译时指定的端口,通常为 5432。

-P 分配
--pset=分配
指定打印选项,样式为 \pset. 注意这里要分开
名称和值用等号代替空格。 例如,设置输出
格式为 LaTeX,你可以写 -P format=latex。

-q
- 安静的
指定 psql 应该安静地工作。 默认情况下,它会打印欢迎消息
和各种信息输出。 如果使用此选项,则这些都不会发生。 这个
-c 选项。 这相当于设置变量 安静 继续。

-R 分离器
--记录分隔符=分离器
使用 VHDL 语言编写 分离器 作为未对齐输出的记录分隔符。 这相当于
\pset 记录 命令。

-s
- 一小步
以单步模式运行。 这意味着在发送每个命令之前都会提示用户
到服务器,也可以选择取消执行。 使用它来调试脚本。

-S
- 单线
在单行模式下运行,其中换行符作为分号终止 SQL 命令
一样。

备注
这种模式是为那些坚持的人提供的,但你不一定
鼓励使用它。 特别是,如果您在一行中混合使用 SQL 和元命令
对于没有经验的用户来说,执行顺序可能并不总是很清楚。

-t
--仅元组
关闭列名和结果行计数页脚等的打印。这是
相当于 \t 命令。

-T 表选项
--表属性=表选项
指定要放置在 HTML 表格标签内的选项。 看 \pset 了解详情。

-U 用户名
--用户名=用户名
以用户身份连接数据库 用户名 而不是默认值。 (你必须有
允许这样做,当然。)

-v 分配
--设置=分配
--变量=分配
执行变量赋值,如 \放 元命令。 注意必须分开
名称和值(如果有),在命令行上用等号表示。 要取消设置变量,
去掉等号。 要使用空值设置变量,请使用等号
但不考虑价值。 这些任务是在非常早期的阶段完成的
启动,因此保留用于内部目的的变量可能会在以后被覆盖。

-V
- 版
打印 psql 版本并退出。

-w
--无密码
永远不要发出密码提示。 如果服务器需要密码认证和
密码无法通过其他方式获得,例如 .pgpass 文件、连接
尝试会失败。 此选项在没有用户的批处理作业和脚本中很有用
存在以输入密码。

请注意,此选项将在整个会话中保持设置,因此它会影响使用
元命令的 \连接 以及最初的连接尝试。

-W
- 密码
强制 psql 在连接到数据库之前提示输入密码。

这个选项从来不是必需的,因为如果 psql 会自动提示输入密码
服务器要求密码认证。 但是,psql 会浪费一个连接
尝试找出服务器需要密码。 在某些情况下,值得输入
-W 以避免额外的连接尝试。

请注意,此选项将在整个会话中保持设置,因此它会影响使用
元命令的 \连接 以及最初的连接尝试。

-x
--展开
打开扩展表格格式模式。 这相当于 \x 命令。

-X,
--no-psqlrc
不要读取启动文件(系统范围的 psqlrc 文件和用户的
〜/.psqlrc 文件)。

-z
--field-separator-XNUMX
将未对齐输出的字段分隔符设置为零字节。

-0
--记录分隔符-零
将未对齐输出的记录分隔符设置为零字节。 这对
例如,与 xargs -0 接口。

-1
--单笔交易
当 psql 执行脚本时,添加此选项包装 BEGIN/犯罪 围绕脚本
将其作为单个事务执行。 这确保了所有命令
成功完成,或者不应用任何更改。

如果脚本本身使用 BEGIN, 犯罪回滚,此选项将没有
想要的效果。 此外,如果脚本包含任何无法执行的命令
在事务块内,指定此选项将导致该命令(因此
整个交易)失败。

-?
--帮助[=主题]
显示有关 psql 的帮助并退出。 可选的 主题 参数(默认为选项)
选择解释psql的哪一部分:commands描述psql的反斜杠命令;
options 描述了可以传递给 psql 的命令行选项; 和变量
显示有关 psql 配置变量的帮助。

退出 状态


如果 psql 正常完成,则向 shell 返回 0,如果发生自身的致命错误,则返回 1
(例如,内存不足,找不到文件),2 如果与服务器的连接出现问题并且
会话不是交互式的,如果脚本和变量中发生错误,则为 3
ON_ERROR_STOP 被设定。

用法


连接 a 数据库
psql 是一个常规的 PostgreSQL 客户端应用程序。 为了连接到数据库,您
需要知道目标数据库的名称、主机名和端口号
服务器,以及您要连接的用户名。 psql 可以告诉那些
通过命令行选项的参数,即 -d, -h, -p-U 分别。 如果
发现不属于任何选项的参数将被解释为
数据库名称(或用户名,如果已提供数据库名称)。 不是所有这些
需要选项; 有一些有用的默认值。 如果省略主机名,psql 将
通过 Unix 域套接字连接到本地主机上的服务器,或通过 TCP/IP 连接到本地主机
在没有 Unix 域套接字的机器上。 默认端口号确定在
编译时间。 由于数据库服务器使用相同的默认值,因此您不必
大多数情况下指定端口。 默认用户名是您的操作系统用户名,
默认数据库名称也是如此。 请注意,您不能只连接到下的任何数据库
任何用户名。 您的数据库管理员应该已通知您有关您的访问权限
权利。

当默认值不太正确时,您可以通过设置
环境变量 PG数据库, PG主机, PG端口用户 到适当的值。 (为了
其他环境变量,请参阅第 31.14 节,“环境变量”,在
文档。)有一个也很方便 ~/.pgpass 文件以避免经常有
输入密码。 请参阅文档中的第 31.15 节“密码文件”
更多信息。

指定连接参数的另一种方法是 信息 字符串或 URI,
它用于代替数据库名称。 这种机制使您可以非常广泛地控制
连接。 例如:

$ psql的 “服务=我的服务 sslmode=需要”
$ psql的 postgresql://dbmaster:5433/mydb?sslmode=require

通过这种方式,您还可以使用 LDAP 进行连接参数查找,如部分所述
31.17,“连接参数的 LDAP 查找”,在文档中。 见第 31.1.2 节,
“Parameter Key Words”,在文档中有关所有可用的更多信息
连接选项。

如果由于任何原因无法建立连接(例如,权限不足、服务器
未在目标主机上运行等),psql 将返回错误并终止。

如果标准输入和标准输出都是终端,则 psql 设置客户端
编码为“自动”,这将从区域设置中检测适当的客户端编码
设置(LC_CTYPE Unix 系统上的环境变量)。 如果这不起作用
预期,客户端编码可以使用环境变量覆盖
PG客户端编码.

进入 SQL 命令
在正常操作中,psql 会提供一个提示,其中包含 psql 所在的数据库的名称
当前已连接,后跟字符串 =>。 例如:

$ psql的 测试数据库
psql (9.5.2)
输入“帮助”以获得帮助。

测试数据库=>

在提示符下,用户可以键入 SQL 命令。 通常,输入行被发送到
当到达命令终止分号时服务器。 行尾不终止
命令。 因此,为了清楚起见,命令可以分布在多行上。 如果命令是
发送和执行没有错误,命令的结果显示在屏幕上。

每当执行命令时,psql 还会轮询异步通知事件
由...生成 (7)和 NOTIFY(7)。

当 C 风格的块注释被传递到服务器进行处理和删除时,
psql 删除了 SQL 标准注释。

元命令
您在 psql 中输入的任何以不带引号的反斜杠开头的内容都是 psql 元命令
由 psql 本身处理。 这些命令使 psql 对管理更有用
或脚本。 元命令通常称为斜杠或反斜杠命令。

psql 命令的格式是反斜杠,后跟命令动词,
然后任何论据。 参数与命令动词分开,彼此之间通过
任意数量的空白字符。

要在参数中包含空格,您可以用单引号引用它。 包括一个
参数中的单引号,在单引号文本中写两个单引号。 任何事物
此外,包含在单引号中的\n(新
line)、\t(制表符)、\b(退格)、\r(回车)、\f(换页)、\数字 (八进制),
和 \x数字 (十六进制)。 单引号内任何其他字符前面的反斜杠
text 引用该单个字符,无论它是什么。

在参数中,用反引号 (`) 括起来的文本被视为命令行
传递给shell。 命令的输出(删除任何尾随换行符)
替换反引号的文本。

如果一个未加引号的冒号 (:) 后跟 psql 变量名出现在参数中,它
由变量的值替换,如 SQL 插值中所述。

某些命令将 SQL 标识符(例如表名)作为参数。 这些论点
遵循 SQL 的语法规则:不带引号的字母强制小写,而双引号
引号 (") 保护字母免于大小写转换,并允许将空格合并到
标识符。 在双引号内,成对的双引号减少为单个双引号
在结果名称中。 例如,FOO"BAR"BAZ 被解释为 fooBARbaz,而 "A
奇怪的“名字”变成了一个奇怪的名字。

参数解析在行尾停止,或者当另一个不带引号的反斜杠出现时
成立。 未加引号的反斜杠被视为新元命令的开头。 特别的
序列\\(两个反斜杠)标记参数结束并继续解析SQL
命令,如果有的话。 这样 SQL 和 psql 命令可以在一行中自由混合。 但在任何
在这种情况下,元命令的参数不能继续超出行尾。

定义了以下元命令:

\a
如果当前表格输出格式未对齐,则切换为对齐。 如果是
不是未对齐,它被设置为未对齐。 此命令保留用于向后
兼容性。 看 \pset 以获得更通用的解决方案。

\c 或 \connect [ DBNAME [ 用户名 [ 主持人 [ 端口 ] ] | 信息
建立到 PostgreSQL 服务器的新连接。 要使用的连接参数
可以使用位置语法或使用 conninfo 连接指定
文档中第 31.1.1 节“连接字符串”中详述的字符串。

使用位置参数时,如果有 DBNAME, 用户名, 主持人 or 端口 被省略
或指定为 -,则使用来自先前连接的该参数的值;
如果之前没有连接,则参数值的 libpq 默认值为
用过的。 使用 conninfo 字符串时,不使用来自先前连接的值
新的连接。

如果成功建立新连接,则关闭先前的连接。 如果
连接尝试失败(用户名错误、访问被拒绝等),之前的
只有在 psql 处于交互模式时才会保持连接。 当执行一个
非交互式脚本,处理将立即停止并出现错误。 这个
一方面选择区别是为了方便用户防止打字错误,另一方面
脚本不会意外作用于错误数据库的安全机制
另一方面。

例子:

=> \c mydb myuser host.dom 6432
=> \c 服务=foo
=> \c "host=localhost port=5432 dbname=mydb connect_timeout=10 sslmode=disable"
=> \c postgresql://tom@localhost/mydb?application_name=myapp

\C [ 标题 ]
设置作为查询结果打印的任何表的标题或取消设置任何此类
标题。 此命令等效于 \pset 标题 标题. (此命令的名称
源自“标题”,因为它以前仅用于在 HTML 中设置标题
表。)

\CD [ 目录 ]
将当前工作目录更改为 目录. 无需论证,更改
当前用户的主目录。

Tips:
要打印当前工作目录,请使用 \! 密码

\连接信息
输出有关当前数据库连接的信息。

\复制 { [( column_list中 )] | ( 询问 ) } { 来自 | 到 } { '文件名' | 程序
'命令' | 标准输入 | 标准输出 | pstdin | pstdout } [ [ 与 ] ( 选项 [, ...] ) ]
执行前端(客户端)复制。 这是一个运行 SQL 的操作 COPY(7)
命令,但不是服务器读取或写入指定文件,而是 psql 读取
或写入文件并在服务器和本地文件系统之间路由数据。
这意味着文件可访问性和权限是本地用户的,而不是本地用户的
服务器,并且不需要 SQL 超级用户权限。

指定程序时, 命令 由 psql 执行,数据从或传到
命令 在服务器和客户端之间路由。 再次,执行权限
是本地用户的,而不是服务器的,并且没有 SQL 超级用户权限
必需的。

对于 \copy ... from stdin,数据行从发出
命令,一直持续到\。 被读取或流到达 EOF。 这个选项很有用
用于在 SQL 脚本文件中内嵌填充表。 对于 \copy ... 到标准输出,
输出发送到与 psql 命令输出相同的地方,并且 COPY 命令
不打印状态(因为它可能与数据行混淆)。 读/写
psql 的标准输入或输出,与当前命令源或 \o 选项无关,
从 pstdin 或 pstdout 写入。

此命令的语法类似于 SQL COPY(7) 命令。 所有选项
除了数据源/目的地之外 COPY(7). 因为这,
特殊的解析规则适用于 \复制 命令。 特别是 psql 的变量
替换规则和反斜杠转义不适用。

Tips:
这个操作不如SQL高效 COPY 命令,因为所有数据都必须
通过客户端/服务器连接。 对于大量数据,SQL
命令可能更可取。

\版权
显示 PostgreSQL 的版权和分发条款。

\d[S+] [ 模式 ]
对于每个关系(表、视图、索引、序列或外部表)或复合类型
匹配 模式, 显示所有列、它们的类型、表空间(如果不是
default) 和任何特殊属性,例如 NOT NULL 或默认值。 相关索引,
还显示了约束、规则和触发器。 对于外部表,关联的
也显示了外国服务器。 (“匹配模式”在模式中定义
下面。)

对于某些类型的关系,\d 显示每列的附加信息: column
序列值、索引的索引表达式和外部数据包装器选项
对于外国表。

命令形式 \d+ 是相同的,只是显示了更多信息:任何
显示与表列相关的注释,以及
表中的OIDs,如果关系是视图,则视图定义,非默认
副本身份设置。

默认情况下,只显示用户创建的对象; 提供模式或 S 修饰符
包括系统对象。

备注
If \d 用于不带 模式 论证,它等价于 \dtvsE 会的
显示所有可见表、视图、序列和外部表的列表。 这是
纯粹是一种便利措施。

\da[S] [ 模式 ]
列出聚合函数及其返回类型和数据类型
操作。 如果 模式 指定,只有名称与模式匹配的聚合才是
显示。 默认情况下,只显示用户创建的对象; 提供模式或 S
修饰符以包含系统对象。

\db[+] [ 模式 ]
列出表空间。 如果 模式 指定,只有名称匹配的表空间
模式显示。 如果将 + 附加到命令名称,则列出每个表空间
及其相关选项、磁盘大小、权限和描述。

\dc[S+] [ 模式 ]
列出字符集编码之间的转换。 如果 模式 已指定,仅
列出名称与模式匹配的转换。 默认情况下,只有用户创建
显示对象; 提供模式或 S 修饰符以包含系统对象。 如果 +
附加到命令名称后,每个对象都列出了其关联的
描述。

\dC[+] [ 模式 ]
列出类型转换。 如果 模式 指定,只转换其源或目标类型
匹配模式被列出。 如果将 + 附加到命令名称,则每个对象都是
列出与其相关的描述。

\dd[S] [ 模式 ]
显示类型约束、运算符类、运算符族、
规则和触发器。 所有其他评论可以通过相应的反斜杠查看
这些对象类型的命令。

\dd 显示匹配对象的描述 模式,或可见物体的
如果没有给出参数,则为适当的类型。 但在任何一种情况下,只有对象
有一个描述被列出。 默认情况下,只显示用户创建的对象; 供应
包含系统对象的模式或 S 修饰符。

对象的描述可以用 评论(7) SQL 命令。

\ddp [ 模式 ]
列出默认访问权限设置。 为每个角色(和架构、
如果适用)其默认权限设置已从
内置默认值。 如果 模式 被指定,只有角色名称或模式的条目
名称匹配的模式被列出。

更改默认权限 (ALTER_DEFAULT_PRIVILEGES(7)) 命令用于设置
默认访问权限。 权限显示的含义解释如下
(7)。

\dD[S+] [ 模式 ]
列出域。 如果 模式 指定,只有名称匹配模式的域是
显示。 默认情况下,只显示用户创建的对象; 提供模式或 S
修饰符以包含系统对象。 如果将 + 附加到命令名称,则每个对象
列出了相关的权限和描述。

\dE[S+] [ 模式 ]
\di[S+] [ 模式 ]
\dm[S+] [ 模式 ]
\ds[S+] [ 模式 ]
\dt[S+] [ 模式 ]
\dv[S+] [ 模式 ]
在这组命令中,字母 E、i、m、s、t 和 v 代表外部表,
分别是索引、物化视图、序列、表和视图。 您可以指定任何
或所有这些字母,以任何顺序,以获得这些类型的对象的列表。
例如,\dit 列出索引和表。 如果将 + 附加到命令名称,则每个
对象与其在磁盘上的物理大小及其相关描述一起列出,如果
任何。 如果 模式 指定时,仅列出名称与模式匹配的对象。
默认情况下,只显示用户创建的对象; 提供模式或 S 修饰符
包括系统对象。

\des[+] [ 模式 ]
列出外部服务器(助记符:“外部服务器”)。 如果 模式 已指定,仅
列出了名称与模式匹配的服务器。 如果使用 \des+ 形式,则
显示了每个服务器的完整描述,包括服务器的 ACL、类型、版本、
选项和说明。

\det[+] [ 模式 ]
列出外部表(助记符:“外部表”)。 如果 模式 已指定,仅
列出了表名或模式名与模式匹配的条目。 如果表格
\det+ 被使用,通用选项和外部表描述也被显示。

\deu[+] [ 模式 ]
列出用户映射(助记符:“外部用户”)。 如果 模式 被指定,只有那些
列出了用户名与模式匹配的映射。 如果使用 \deu+ 形式,
显示了关于每个映射的附加信息。

注意:
\deu+ 也可能会显示远程用户的用户名和密码,所以要小心
应该采取不透露他们。

\露[+] [ 模式 ]
列出外部数据包装器(助记符:“外部包装器”)。 如果 模式 被指定,
仅列出名称与模式匹配的那些外部数据包装器。 如果
使用 \dew+ 形式,外部数据包装器的 ACL、选项和描述是
也显示。

\df[antwS+] [ 模式 ]
列出函数及其参数、返回类型和函数类型,
它们被分类为“agg”(聚合)、“normal”、“trigger”或“window”。 到
仅显示特定类型的函数,添加相应的字母 a、n、t 或
w 到命令。 如果 模式 指定,只有名称匹配的函数
模式显示。 默认情况下,只显示用户创建的对象; 提供一个模式
或 S 修饰符以包含系统对象。 如果使用 \df+ 形式,则附加
显示有关每个功能的信息,包括安全分类,
波动性、所有者、语言、源代码和描述。

Tips:
要查找带参数或返回特定类型值的函数,请使用
您的寻呼机的搜索功能可以滚动浏览 \df 输出。

\dF[+] [ 模式 ]
列出文本搜索配置。 如果 模式 被指定,只有配置
显示与模式匹配的名称。 如果使用形式 \dF+,则完整描述
显示了每个配置,包括底层文本搜索解析器和
每个解析器标记类型的字典列表。

\dFd[+] [ 模式 ]
列出文本搜索词典。 如果 模式 被指定,只有名字的字典
匹配模式显示。 如果使用 \dFd+ 形式,附加信息是
显示每个选定的词典,包括基础文本搜索模板
和选项值。

\dFp[+] [ 模式 ]
列出文本搜索解析器。 如果 模式 指定,只有名称匹配的解析器
模式显示。 如果使用 \dFp+ 形式,则每个解析器的完整描述为
显示,包括基础功能和可识别的令牌类型列表。

\dFt[+] [ 模式 ]
列出文本搜索模板。 如果 模式 指定,只有名称匹配的模板
显示了图案。 如果使用 \dFt+ 形式,则会显示附加信息
关于每个模板,包括底层函数名称。

\dg[+] [ 模式 ]
列出数据库角色。 (由于“用户”和“组”的概念已经统一
进入“角色”,这个命令现在等价于 \du。)如果 模式 已指定,仅
列出了名称与模式匹配的角色。 如果使用 \dg+ 形式,
显示关于每个角色的附加信息; 目前这增加了评论
每个角色。

\dl
这是一个别名 \lo_列表, 显示大对象列表。

\dL[S+] [ 模式 ]
列出过程语言。 如果 模式 指定,只有名称匹配的语言
模式被列出。 默认情况下,只显示用户创建的语言; 供应
S 修饰符以包含系统对象。 如果将 + 附加到命令名称,则每个
列出语言及其调用处理程序、验证程序、访问权限以及是否
是一个系统对象。

\dn[S+] [ 模式 ]
列出模式(命名空间)。 如果 模式 指定,只有名称匹配的模式
模式被列出。 默认情况下,只显示用户创建的对象; 供应一个
模式或 S 修饰符以包含系统对象。 如果 + 附加到命令
名称,列出每个对象及其关联的权限和描述(如果有)。

\做[S+] [ 模式 ]
列出运算符及其操作数和结果类型。 如果 模式 已指定,仅
列出了名称与模式匹配的运算符。 默认情况下,只有用户创建
显示对象; 提供模式或 S 修饰符以包含系统对象。 如果 +
附加到命令名称,显示有关每个运算符的附加信息,
目前只是底层函数的名称。

\dO[S+] [ 模式 ]
列出排序规则。 如果 模式 指定,只有名称匹配的排序规则
模式被列出。 默认情况下,只显示用户创建的对象; 提供一个模式
或 S 修饰符以包含系统对象。 如果 + 附加到命令名称,
列出每个归类及其相关描述(如果有)。 请注意,只有
显示了可用于当前数据库编码的排序规则,因此结果可能
在同一安装的不同数据库中有所不同。

\dp [ 模式 ]
列出表、视图和序列及其相关的访问权限。 如果 模式
指定,只有名称与模式匹配的表、视图和序列
上市。

这个 (7)和 撤销(7) 命令用于设置访问权限。 的意思
权限显示在下面解释 (7)。

\drds [ 角色模式 [ 数据库模式 ]]
列出定义的配置设置。 这些设置可以是特定于角色的,
特定于数据库,或两者兼而有之。 角色模式数据库模式 用于选择
要分别列出的特定角色和数据库。 如果省略,或者指定了 *,
列出了所有设置,包括那些不是特定于角色或特定于数据库的设置,


改变角色(改变角色(7)) 和 ALTER DATABASE (改变数据库(7)) 命令是
用于定义每个角色和每个数据库的配置设置。

\dT[S+] [ 模式 ]
列出数据类型。 如果 模式 指定,只有名称与模式匹配的类型
被列为。 如果将 + 附加到命令名称,则列出每种类型及其
内部名称和大小、其允许的值(如果它是枚举类型)及其关联
权限。 默认情况下,只显示用户创建的对象; 提供一个模式或
S 修饰符以包含系统对象。

\杜[+] [ 模式 ]
列出数据库角色。 (由于“用户”和“组”的概念已经统一
进入“角色”,这个命令现在等价于 \dg。)如果 模式 已指定,仅
列出了名称与模式匹配的角色。 如果使用 \du+ 形式,
显示关于每个角色的附加信息; 目前这增加了评论
每个角色。

\dx[+] [ 模式 ]
列出已安装的扩展。 如果 模式 指定的,只有那些名称的扩展
匹配模式被列出。 如果使用 \dx+ 形式,则属于
列出了每个匹配的扩展名。

\dy[+] [ 模式 ]
列出事件触发器。 如果 模式 指定,只有那些名称的事件触发器
匹配模式被列出。 如果将 + 附加到命令名称,则每个对象都是
列出与其相关的描述。

\e 或 \edit [ 文件名 [ 电话号码 ]
If 文件名 指定,文件被编辑; 编辑器退出后,其内容为
复制回查询缓冲区。 如果不 文件名 给定,当前查询缓冲区为
复制到一个临时文件,然后以相同的方式进行编辑。

然后根据 psql 的正常规则重新解析新的查询缓冲区,其中
整个缓冲区被视为一行。 (因此您不能以这种方式制作脚本。
使用 VHDL 语言编写 \i 为此。)这意味着如果查询以(或包含)分号结束,它
立即执行。 否则它只会在查询缓冲区中等待; 类型
分号或 \g 发送,或 \r 取消。

如果指定了行号,psql 会将光标定位在指定的行上
文件或查询缓冲区。 请注意,如果给出单个全数字参数,则 psql
假设它是一个行号,而不是一个文件名。

Tips:
有关如何配置和自定义编辑器的信息,请参阅环境。

\回声 文本 [...]
将参数打印到标准输出,以一个空格分隔,后跟一个
新队。 这对于在脚本输出中散布信息很有用。 为了
例:

=> \回声 `日期`
26 年 21 月 40 日星期二 57:1999:XNUMX CEST

如果第一个参数是未加引号的 -n,则不写入尾随换行符。

Tips:
如果使用 \o 命令重定向您可能希望使用的查询输出
\qecho 而不是这个命令。

\f [ 功能说明 [ 电话号码 ]]
此命令以 a 的形式获取并编辑命名函数的定义
CREATE OR 更换 功能 命令。 编辑的方式与\edit 相同。
编辑器退出后,更新的命令在查询缓冲区中等待; 输入分号
或 \g 发送,或 \r 取消。

目标函数可以单独通过名称指定,也可以通过名称和参数指定,例如
示例 foo(整数,文本)。 如果有多个参数类型,则必须给出
同名函数。

如果未指定函数,则为空白 CREATE 功能 模板是为
编辑。

如果指定了行号,psql 会将光标定位在指定的行上
函数体。 (请注意,函数体通常不会从第一个开始
文件的行。)

Tips:
有关如何配置和自定义编辑器的信息,请参阅环境。

\编码 [ 编码 ]
设置客户端字符集编码。 没有参数,此命令显示
当前编码。

\F [ 绳子 ]
设置未对齐查询输出的字段分隔符。 默认为竖线
(|)。 也可以看看 \pset 用于设置输出选项的通用方法。

\G [ 文件名 ]
\克 [ |命令 ]
将当前查询输入缓冲区发送到服务器,并可选择存储查询的
输出 文件名 或通过管道将输出传递给 shell 命令 命令. 该文件或
仅当查询成功返回零个或多个元组时才会写入命令,而不是
如果查询失败或者是一个不返回数据的 SQL 命令。

一个裸 \g 本质上等同于一个分号。 带有参数的 \g 是“一次性”
替代 \o 命令。

\gset [ 字首 ]
将当前查询输入缓冲区发送到服务器并将查询的输出存储到
psql 变量(请参阅变量)。 要执行的查询必须正好返回一行。
行的每一列都存储在一个单独的变量中,名称与
柱子。 例如:

=> 选择 '你好' AS 变量1, 10 AS 无功2
-> \gset
=> \回声 :var1 :var2
你好10

如果您指定一个 字首,该字符串被添加到查询的列名之前
创建要使用的变量名称:

=> 选择 '你好' AS 变量1, 10 AS 无功2
-> \gset 结果_
=> \回声 :结果_var1 :结果_var2
你好10

如果列结果为 NULL,则相应的变量未设置而不是设置。

如果查询失败或未返回一行,则不会更改任何变量。

\h 或 \help [ 命令 ]
提供有关指定 SQL 命令的语法帮助。 如果 命令 未指定,则 psql
将列出所有可以使用语法帮助的命令。 如果 命令 是一个
星号 (*),则显示所有 SQL 命令的语法帮助。

备注
为了简化打字,由多个单词组成的命令不必
引。 因此可以输入 \帮助 改变 .

\H 或 \html
打开 HTML 查询输出格式。 如果 HTML 格式已经打开,则切换
回到默认的对齐文本格式。 此命令是为了兼容性和
方便,但见 \pset 关于设置其他输出选项。

\i 或 \include 文件名
从文件中读取输入 文件名 并执行它,就好像它已经在
键盘。

If 文件名 是 -(连字符),然后读取标准输入直到出现 EOF 指示或 \q
元命令。 这可用于将交互式输入与来自文件的输入穿插在一起。
请注意,只有在最外层处于活动状态时,才会使用 Readline 行为。

备注
如果您想在屏幕上看到读取的行,您必须设置
变量 ECHO 对所有人。

\ir 或 \include_relative 文件名
\ir 命令类似于 \i,但解析相对文件名的方式不同。 什么时候
在交互模式下执行时,这两个命令的行为相同。 然而,当
从脚本调用,\ir 解释相对于所在目录的文件名
脚本所在的位置,而不是当前的工作目录。

\l[+] 或 \list[+] [ 模式 ]
列出服务器中的数据库并显示它们的名称、所有者、字符集
编码和访问权限。 如果 模式 指定的,只有名称的数据库
匹配模式被列出。 如果将 + 附加到命令名称、数据库大小、
还显示默认表空间和描述。 (尺码信息仅为
可用于当前用户可以连接的数据库。)

\lo_导出 洛德 文件名
使用 OID 读取大对象 洛德 从数据库中并将其写入 文件名。 笔记
这与服务器功能略有不同 lo_导出,它与
数据库服务器作为服务器文件运行的用户的权限
系统。

Tips:
使用 VHDL 语言编写 \lo_列表 找出大对象的 OID。

\lo_导入 文件名 [ 评论 ]
将文件存储到 PostgreSQL 大对象中。 可选地,它关联给定的
评论对象。 例子:

富=> \lo_导入 '/home/peter/pictures/photo.xcf' 'a 图片 of 我'
lo_导入 152801

响应表明大对象收到了对象ID 152801,可以是
用于将来访问新创建的大对象。 为了
可读性,建议始终将人类可读的评论与每个
目的。 OID 和评论都可以使用 \lo_列表 命令。

注意这个命令和服务端有细微的区别 lo_导入 因为它
充当本地文件系统上的本地用户,而不是服务器的用户和
文件系统。

\lo_列表
显示当前存储在数据库中的所有 PostgreSQL 大对象的列表,以及
以及为他们提供的任何评论。

\lo_取消链接 洛德
删除带有 OID 的大对象 洛德 从数据库。

Tips:
使用 VHDL 语言编写 \lo_列表 找出大对象的 OID。

\o 或 \out [ 文件名 ]
\o 或 \out [ |命令 ]
安排将未来的查询结果保存到文件中 文件名 或管道未来的结果
外壳命令 命令. 如果未指定参数,则查询输出将重置为
标准输出。

“查询结果”包括所有表格、命令响应和从
数据库服务器,以及查询数据库的各种反斜杠命令的输出
数据库(如 \d),但不是错误消息。

Tips:
要在查询结果之间散布文本输出,请使用 \qecho.

\p 或 \print
将当前查询缓冲区打印到标准输出。

\密码 [ 用户名 ]
更改指定用户(默认为当前用户)的密码。 这个
命令提示输入新密码,对其进行加密,然后将其作为密码发送到服务器
改变 身份 命令。 这可确保新密码不会以明文形式出现
在命令历史、服务器日志或其他地方。

\迅速的 [ 文本 ] 姓名
提示用户提供分配给变量的文本 姓名. 一个可选的
提示字符串, 文本, 可以指定。 (对于多词提示,用
单引号。)

默认情况下,\prompt 使用终端进行输入和输出。 然而,如果 -f 命令
使用了线路开关,\prompt 使用标准输入和标准输出。

\pset [ 选项 [ 折扣值 ]]
此命令设置影响查询结果表输出的选项。 选项
指示要设置的选项。 的语义 折扣值 取决于
选定的选项。 对于某些选项,省略 折扣值 导致选项被切换或
未设置,如特定选项下所述。 如果没有提到这种行为,
然后省略 折扣值 只会显示当前设置。

\pset 不带任何参数显示所有打印选项的当前状态。

可调整的打印选项有:

边界
这个 折扣值 必须是数字。 一般来说,数字越大,边界越多,
表格将具有的行,但详细信息取决于特定格式。 在 HTML 中
格式,这将直接转换为 border=... 属性。 在大多数其他
仅格式化值 0(无边框)、1(内部分隔线)和 2(表
frame) 是有意义的,大于 2 的值将被视为 border = 2。
Latex 和 Latex-longtable 格式另外允许值 3 来添加除法
数据行之间的线。


设置包装格式的目标宽度,以及宽度限制
确定输出是否足够宽以需要寻呼机或切换到
扩展自动模式下的垂直显示。 零(默认值)导致目标宽度
由环境变量控制 , 或检测到的屏幕宽度
if 未设置。 此外,如果列为零,则包装格式
只影响屏幕输出。 如果列不为零,则文件和管道输出为
也包裹到那个宽度。

展开(或 x)
If 折扣值 指定它必须是开或关,这将启用或禁用
扩展模式,或自动。 如果 折扣值 省略命令在 on 和
关闭设置。 启用扩展模式时,查询结果以两种方式显示
列,左边是列名,右边是数据。 这种模式是
如果数据在正常的“水平”模式下无法显示在屏幕上,则很有用。 在
自动设置,每当查询输出更宽时使用扩展模式
比屏幕,否则使用常规模式。 自动设置只是
在对齐和包装格式中有效。 在其他格式中,它总是表现得如此
好像扩展模式关闭一样。

字段
指定要在未对齐的输出格式中使用的字段分隔符。 这样一个
可以创建,例如,制表符或逗号分隔的输出,其他程序
可能更喜欢。 要将制表符设置为字段分隔符,请键入 \pset fieldsep '\t'。 这
默认字段分隔符是“|” (竖线)。

字段ep_zero
将要在未对齐输出格式中使用的字段分隔符设置为零字节。

页脚
If 折扣值 指定它必须是开或关,这将启用或禁用
表格页脚的显示((n 行)计数)。 如果 折扣值 省略命令
打开或关闭页脚显示。

格式
将输出格式设置为未对齐、对齐、包装、html、asciidoc、
Latex(使用表格)、latex-longtable 或 troff-ms。 唯一的缩写是
允许。 (这意味着一封信就足够了。)

未对齐格式将一行的所有列写在一行上,由
当前活动的字段分隔符。 这对于创建可能是
旨在被其他程序读入(例如,制表符分隔或
逗号分隔格式)。

对齐格式是标准的、人类可读的、格式良好的文本输出; 这个
是默认值。

包装格式类似于对齐,但将宽数据值跨行包装以使
输出适合目标列宽。 目标宽度按所述确定
在列选项下。 请注意,psql 不会尝试包装列标题
头衔; 因此,包装格式的行为与对齐相同,如果总宽度
需要列标题超过目标。

html、asciidoc、latex、latex-longtable 和 troff-ms 格式输出表格
旨在包含在使用相应标记的文档中
语。 它们不是完整的文件! 这在 HTML 中可能不是必需的,
但在 LaTeX 中,您必须有一个完整的文档包装器。 乳胶长桌也
需要 LaTeX longtable 和 booktabs 包。

线型
将边框线绘制样式设置为 ascii、old-ascii 或 unicode 之一。 独特的
允许使用缩写。 (这意味着一个字母就足够了。)默认
设置为ascii。 此选项仅影响对齐和包装的输出格式。

ascii 样式使用纯 ASCII 字符。 数据中的换行符使用 + 显示
右侧空白处的符号。 当包装格式从一行开始包装数据时
到下一个没有换行符的,在右侧显示一个点 (.)
第一行的边距,并再次在下一行的左侧边距中。

old-ascii 样式使用纯 ASCII 字符,使用中使用的格式样式
PostgreSQL 8.4 及更早版本。 数据中的换行符使用 : 符号显示
左侧的列分隔符。 当数据从一行换行到
next 没有换行符,a ; 符号用于代替左侧
列分隔符。

unicode 样式使用 Unicode 框绘图字符。 显示数据中的换行符
在右侧边距中使用回车符。 当数据被包装时
从一行到下一行没有换行符,显示省略号
在第一行的右侧边距中,再次在第一行的左侧边距中
以下行。

当边框设置大于零时,线型选项也决定
绘制边界线的字符。 纯 ASCII 字符工作
无处不在,但 Unicode 字符在识别它们的显示器上看起来更好。


设置要打印的字符串代替空值。 默认是打印
没有,很容易被误认为是空字符串。 例如,一个人可能
更喜欢 \pset null '(null)'。

数字区域
If 折扣值 指定它必须是开或关,这将启用或禁用
显示特定于语言环境的字符以分隔左侧的数字组
小数点。 如果 折扣值 省略命令在常规和
特定于语言环境的数字输出。

传呼机
控制用于查询和 psql 帮助输出的寻呼程序的使用。 如果环境
变量 PAGER 设置后,输出将通过管道传输到指定的程序。 否则一个
使用依赖于平台的默认值(例如更多)。

当寻呼机选项关闭时,不使用寻呼机程序。 当寻呼机选项
打开时,在适当的时候使用寻呼机,即当输出到终端时
并且不适合屏幕。 pager 选项也可以设置为 always,即
导致寻呼机用于所有终端输出,无论它是否适合
屏幕上。 \pset 寻呼机没有 折扣值 打开和关闭寻呼机的使用。

寻呼机最小行数
如果 pager_min_lines 设置为大于页面高度的数字,则寻呼机
除非至少有这么多行输出,否则不会调用程序
展示。 默认设置为 0。

记录
指定要在未对齐的输出格式中使用的记录(行)分隔符。 这
默认是换行符。

记录零
将要在未对齐输出格式中使用的记录分隔符设置为零字节。

tableattr(或 T)
在 HTML 格式中,这指定要放置在 table 标记内的属性。 这个
例如可以是 cellpadding 或 bgcolor。 请注意,您可能不想
在此处指定边框,因为 \pset 边框已经解决了这个问题。 如果不 折扣值
给出,表属性未设置。

在 Latex-longtable 格式中,这控制了每列的比例宽度
包含左对齐的数据类型。 它被指定为以空格分隔的
值列表,例如'0.2 0.2 0.6'。 未指定的输出列使用最后一个
指定值。

标题
为任何随后打印的表格设置表格标题。 这可以用来给
您的输出描述性标签。 如果不 折扣值 给出,标题未设置。

tuples_only(或 t)
If 折扣值 指定它必须是开或关,这将启用或禁用
仅元组模式。 如果 折扣值 省略命令在常规和
仅元组输出。 常规输出包括额外信息,例如列
页眉、标题和各种页脚。 在 tuples-only 模式下,只有实际的表数据
显示。

unicode_border_linestyle
将 unicode 线条样式的边框绘制样式设置为 single 或
双。

unicode_column_linestyle
将 unicode 线条样式的列绘制样式设置为 single 或
双。

unicode_header_linestyle
将 unicode 线条样式的标题绘制样式设置为单个或
双。

这些不同格式的外观说明可以在示例部分中看到。

Tips:
有各种快捷命令 \pset。 看 \a, \C, \H, \t, \T\x.

\q 或 \退出
退出 psql 程序。 在脚本文件中,仅终止该脚本的执行。

\qecho 文本 [...]
此命令等同于 \回声 除了输出将写入查询
输出通道,由 \o.

\r 或 \reset
重置(清除)查询缓冲区。

\s [ 文件名 ]
将 psql 的命令行历史打印到 文件名。 如果 文件名 被省略,历史是
写入标准输出(如果合适,使用寻呼机)。 这个命令不是
如果 psql 是在没有 Readline 支持的情况下构建的,则可用。

\放 [ 姓名 [ 折扣值 [...]]]
设置 psql 变量 姓名折扣值,或者如果给出了多个值,则
所有这些的串联。 如果只给出一个参数,则变量设置为
一个空值。 要取消设置变量,请使用 \未设置 命令。

\放 不带任何参数显示所有当前设置的 psql 的名称和值
变量。

有效的变量名可以包含字母、数字和下划线。 见章节
下面的变量的详细信息。 变量名区分大小写。

尽管欢迎您将任何变量设置为您想要的任何值,但 psql 会处理几个
变量作为特殊。 它们记录在关于变量的部分中。

备注
该命令与 SQL 命令无关 设置(7)。

\setenv 姓名 [ 折扣值 ]
设置环境变量 姓名折扣值,或者 折扣值 未提供,未设置
环境变量。 例子:

测试数据库=> \setenv PAGER
测试数据库=> \setenv -imx4F

\sf[+] 功能说明
此命令以 a 的形式获取并显示命名函数的定义
CREATE OR 更换 功能 命令。 定义打印到当前查询
输出通道,由 \o.

目标函数可以单独通过名称指定,也可以通过名称和参数指定,例如
示例 foo(整数,文本)。 如果有多个参数类型,则必须给出
同名函数。

如果将 + 附加到命令名称,则输出行被编号,并带有
函数体的第一行是第 1 行。

\t
切换输出列名称标题和行计数页脚的显示。 这个命令
等效于 \pset tuples_only 并且是为了方便而提供的。

\T 表选项
指定要以 HTML 输出格式放置在 table 标记中的属性。 这个
命令等效于 \pset tableattr 表选项.

\时间 [ on | 折扣 ]
不带参数,切换显示每个 SQL 语句花费的时间,在
毫秒。 与参数,设置相同。

\未设置 姓名
取消设置(删除) psql 变量 姓名.

\w 或 \write 文件名
\w 或 \write |命令
将当前查询缓冲区输出到文件 文件名 或通过管道将其传递给 shell 命令
命令.

\手表 [ ]
重复执行当前查询缓冲区(如\g)直到中断或查询
失败。 在两次执行之间等待指定的秒数(默认为 2)。

\X [ on | 折扣 | 汽车 ]
设置或切换扩展表格格式模式。 因此它等价于 \pset
扩大了。

\z [ 模式 ]
列出表、视图和序列及其相关的访问权限。 如果一个
模式 指定,只有名称与模式匹配的表、视图和序列
被列为。

这是一个别名 \dp (“显示权限”)。

\! [ 命令 ]
转义到单独的 shell 或执行 shell 命令 命令. 论据是
不再进一步解释; 外壳将按原样查看它们。 特别地,变量
替换规则和反斜杠转义不适用。

\? [ 主题 ]
显示帮助信息。 可选的 主题 参数(默认为命令)选择
解释psql的哪一部分:commands描述psql的反斜杠命令; 选项
描述可以传递给 psql 的命令行选项; 和变量显示
关于 psql 配置变量的帮助。

模式
各种 \d 命令接受一个 模式 参数来指定对象名称
显示。 在最简单的情况下,模式就是对象的确切名称。 这
模式中的字符通常被折叠为小写,就像在 SQL 名称中一样;
例如,\dt FOO 将显示名为 foo 的表。 与 SQL 名称一样,放置双
模式周围的引号停止折叠为小写。 您是否需要包含一个
模式中的实际双引号字符,将其写为一对双引号
双引号序列; 这再次符合 SQL 引用的规则
身份标识。 例如,\dt "FOO""BAR" 将显示名为 FOO"BAR 的表(不是
foo"bar). 与 SQL 名称的正常规则不同,您可以在周围加上双引号
模式的一部分,例如 \dt FOO"FOO"BAR 将显示名为的表
fooFOObar。

每当 模式 参数完全省略,\d 命令显示所有
在当前模式搜索路径中可见的对象——这相当于
使用 * 作为模式。 (如果一个对象的包含模式是
在搜索路径中,并且没有相同种类和名称的对象出现在前面
搜索路径。 这相当于声明对象可以被引用
没有明确模式限定的名称。)查看数据库中的所有对象
无论可见性如何,都使用 *.* 作为模式。

在模式中, * 匹配任何字符序列(包括无字符)和 ?
匹配任何单个字符。 (这种表示法类似于 Unix shell 文件名
模式。)例如,\dt int* 显示名称以 int 开头的表。 但
在双引号内,* 和 ? 失去了这些特殊的意义,只是匹配
从字面上。

包含点 (.) 的模式被解释为模式名称模式,后跟
对象名称模式。 例如,\dt foo*.*bar* 显示所有表
name 包括模式名称以 foo 开头的模式中的 bar。 没有点的时候
出现,则模式只匹配当前模式中可见的对象
搜索路径。 同样,双引号内的点失去了它的特殊含义,是
字面上匹配。

高级用户可以使用正则表达式符号,例如字符类,
示例 [0-9] 匹配任何数字。 所有正则表达式特殊字符都用作
在文档中的第 9.7.3 节“POSIX 正则表达式”中指定,除了
为了 。 如上所述,它被视为分隔符,* 被转换为
正则表达式符号 .*, ? 被翻译成 .,而 $ 是匹配的
字面上地。 您可以通过编写 ? 为了 。, (R+|)
HPMC胶囊 R*, 或者 (R|) 为 R?. $ 不需要作为正则表达式字符,因为
模式必须匹配全名,不像常规的通常解释
表达式(换句话说, $ 会自动附加到您的模式中)。 写 * 在
如果您不希望模式被锚定,则开始和/或结束。 注意
在双引号内,所有正则表达式特殊字符都失去了它们的特殊性
意义和字面匹配。 另外,正则表达式特殊字符
在运算符名称模式中按字面匹配(即,\do 的参数)。

先进的 功能
变量
psql 提供类似于常见 Unix 命令外壳的变量替换功能。
变量只是名称/值对,其中值可以是任何字符串
长度。 名称必须由字母(包括非拉丁字母)、数字和
下划线。

要设置变量,请使用 psql 元命令 \放。 例如,

测试数据库=> \放 FOO 酒吧

将变量 foo 设置为值 bar。 要检索变量的内容,
在名称前加一个冒号,例如:

测试数据库=> \回声 :富
酒吧

这适用于常规 SQL 命令和元命令; SQL中有更多细节
插值,如下。

如果你打电话 \放 没有第二个参数,变量被设置,带有一个空字符串
作为价值。 要取消设置(即删除)变量,请使用命令 \未设置. 为了显示
所有变量的值,调用 \放 没有任何争论。

备注
的论点 \放 遵循与其他相同的替换规则
命令。 因此,您可以构建有趣的引用,例如 \set :foo
'something' 并获得 Perl 或 PHP 的“软链接”或“变量”,
分别。 不幸(或幸运?),没有办法做任何事情
对这些结构有用。 另一方面, \set bar :foo 是一个完美的
复制变量的有效方法。

psql 专门处理了许多这些变量。 他们代表某些
可以在运行时通过更改变量值来更改的选项设置,
或者在某些情况下代表 psql 的可变状态。 虽然你可以使用这些
用于其他目的的变量,不推荐这样做,因为程序行为可能
长得真奇怪真的很快。 按照惯例,所有经过特殊处理的变量'
名称由所有大写 ASCII 字母(可能还有数字和下划线)组成。
为确保将来的最大兼容性,请避免将此类变量名用于
你自己的目的。 所有特殊处理的变量的列表如下。

自动提交
当打开时(默认),每个 SQL 命令在成功时自动提交
完成。 要在此模式下推迟提交,您必须输入 BEGIN or 主页
交易 SQL 命令。 当关闭或取消设置时,SQL 命令直到
你明确发出 犯罪 or END. 自动提交关闭模式通过发出一个
含蓄 BEGIN 对你来说,就在任何不在一个命令中的命令之前
交易块本身不是一个 BEGIN 或其他事务控制命令,
也不是不能在事务块内执行的命令(例如 真空).

备注
在自动提交关闭模式下,您必须通过以下方式明确放弃任何失败的事务
进入 中止 or 回滚. 还要记住,如果您退出会话
不承诺,你的工作就会丢失。

备注
autocommit-on 模式是 PostgreSQL 的传统行为,但是
autocommit-off 更接近 SQL 规范。 如果您更喜欢自动提交关闭,您
可能希望在系统范围的 psqlrc 文件或您的 〜/.psqlrc 文件中。

COMP_KEYWORD_CASE
确定完成 SQL 关键字时要使用的字母大小写。 如果设置为
下或上,完成的单词将分别为小写或大写。
如果设置为preserve-lower 或preserve-upper(默认),完成的单词将
是在已经输入的单词的情况下,但未完成的单词
输入的任何内容将分别为小写或大写。

数据库名称
您当前连接的数据库的名称。 每次都这样设置
您连接到数据库(包括程序启动),但可以取消设置。

ECHO
如果设置为 all,则所有非空输入行将按原样打印到标准输出
读。 (这不适用于以交互方式读取的行。)选择此行为
在程序启动时,使用开关 -a. 如果设置为查询,psql 打印每个查询
到标准输出,因为它被发送到服务器。 这个开关是 -e. 如果设置
错误,则仅在标准错误输出中显示失败的查询。 这
为此切换是 -b. 如果未设置,或者设置为 none(或除这些值之外的任何其他值)
以上)然后不显示查询。

回声隐藏
当此变量设置为 on 并且反斜杠命令查询数据库时,
首先显示查询。 此功能可帮助您学习 PostgreSQL 内部和
在您自己的程序中提供类似的功能。 (要选择此行为
程序启动,使用开关 -E.) 如果将变量设置为值 noexec,
查询只是显示,但实际上并未发送到服务器并执行。

编码
当前客户端字符集编码。

FETCH_COUNT 个
如果将此变量设置为整数值 > 0,则结​​果 选择 查询是
以多行的组获取并显示,而不是默认值
在显示之前收集整个结果集的行为。 因此只有一个
无论结果集的大小如何,都使用有限的内存量。
启用此功能时,通常使用 100 到 1000 的设置。 记住
使用此功能时,查询可能会在已显示后失败
一些行。

Tips:
尽管您可以使用具有此功能的任何输出格式,但默认对齐
格式往往看起来很糟糕,因为每组 FETCH_COUNT 个 行将是
单独格式化,导致跨行组的列宽不同。
其他输出格式效果更好。

组织控制
如果此变量设置为 ignorespace,则以空格开头的行不会
进入历史列表。 如果设置为 ignoreups 的值,匹配的行
不输入以前的历史行。 ignoreboth 的值结合了两者
选项。 如果未设置,或设置为 none(或上述值以外的任何其他值),则所有
以交互模式读取的行保存在历史列表中。

备注
这个特性被 Bash 无耻地抄袭了。

历史档案
将用于存储历史列表的文件名。 默认值为
~/.psql_history。 例如,放置:

\设置历史文件 ~/.psql_history- :数据库名

in 〜/.psqlrc 将导致 psql 为每个数据库维护一个单独的历史记录。

备注
这个特性被 Bash 无耻地抄袭了。

历史大小
要存储在命令历史记录中的命令数。 默认值为 500。

备注
这个特性被 Bash 无耻地抄袭了。

主办方
您当前连接的数据库服务器主机。 每次都这样设置
您连接到数据库(包括程序启动),但可以取消设置。

忽略
如果未设置,则向交互式会话发送 EOF 字符(通常为 Control+D)
psql 将终止应用程序。 如果设置为一个数值,那么多EOF
在应用程序终止之前忽略字符。 如果设置了变量
但没有数值,默认为 10。

备注
这个特性被 Bash 无耻地抄袭了。

拉斯蒂德
最后一个受影响的 OID 的值,从一个 插入 or \lo_导入
命令。 这个变量只保证在结果之后有效
已显示下一个 SQL 命令。

ON_ERROR_ROLLBACK
当设置为 on 时,如果事务块中的语句产生错误,则
错误被忽略,事务继续。 当设置为交互式时,例如
错误只会在交互式会话中被忽略,而在阅读脚本时不会被忽略
文件。 当未设置或设置为关闭时,事务块中的一条语句会生成
错误会中止整个事务。 错误回滚模式通过发出
隐含的 保存点 对您而言,就在事务中的每个命令之前
块,然后在命令失败时回滚到保存点。

ON_ERROR_STOP
默认情况下,命令处理在出错后继续。 当这个变量被设置时
继续,处理将立即停止。 在交互模式下,psql 将
返回命令提示符; 否则,psql 将退出,返回错误代码 3 到
将此情况与使用错误报告的致命错误情况区分开来
代码 1. 在任一情况下,任何当前正在运行的脚本(顶级脚本,如果
任何,以及它可能调用的任何其他脚本)将被终止
立即地。 如果顶级命令字符串包含多个 SQL 命令,
处理将随着当前命令停止。

PORT
您当前连接的数据库服务器端口。 这是设置每
连接到数据库的时间(包括程序启动),但可以取消设置。

提示1
提示2
提示3
这些指定了 psql 问题的提示应该是什么样的。 请参阅下面的提示。

安静
将此变量设置为 on 等效于命令行选项 -q。 这是
在交互模式下可能不太有用。

单线
将此变量设置为 on 等效于命令行选项 -S.

一小步
将此变量设置为 on 等效于命令行选项 -s.

USER
您当前连接的数据库用户。 这是每次你设置的
连接到数据库(包括程序启动),但可以取消设置。

冗长
可以将此变量设置为值 default、verbose 或 terse 以控制
错误报告的详细程度。

SQL 插值
psql 变量的一个关键特性是您可以将它们替换(“插入”)到
常规 SQL 语句,以及元命令的参数。 此外,psql
提供设施以确保变量值用作 SQL 文字和
标识符被正确引用。 插入一个没有任何值的语法
引用是在变量名前面加上冒号 (:)。 例如,

测试数据库=> \放 FOO '我的_表'
测试数据库=> 选择 * :富;

将查询表 my_table。 请注意,这可能是不安全的:
变量是按字面复制的,因此它可以包含不平衡的引号,甚至反斜杠
命令。 你必须确保你把它放在哪里是有意义的。

当一个值被用作 SQL 文字或标识符时,最安全的安排是
因为它被引用。 要将变量的值引用为 SQL 文字,请写一个冒号
后跟单引号中的变量名称。 将值作为 SQL 引用
标识符,写一个冒号,后跟双引号中的变量名称。 这些
构造正确处理引号和其他嵌入在
变量值。 前面的例子这样写会更安全:

测试数据库=> \放 FOO '我的_表'
测试数据库=> 选择 * :“富”;

不会在引用的 SQL 文字中执行变量插值,并且
身份标识。 因此,像 ':foo' 这样的结构不能产生引用
来自变量值的字面量(如果它确实有效,那将是不安全的,因为它
不会正确处理嵌入在值中的引号)。

此机制的一个示例用途是将文件的内容复制到表中
柱子。 首先将文件加载到变量中,然后插入变量的值
作为带引号的字符串:

测试数据库=> \放 内容 `猫 我的文件.txt`
测试数据库=> 插入 探索INQUIRY 我的表 王斌金璟閣的價值觀 (:'内容');

(请注意,如果 my_file.txt 包含 NUL 字节,这仍然不起作用。psql 不
支持在变量值中嵌入 NUL 字节。)

由于冒号可以合法地出现在 SQL 命令中,因此明显的插值尝试
(即 :name、:'name' 或 :"name")不会被替换,除非命名变量是
当前设置。 在任何情况下,您都可以使用反斜杠转义冒号以防止冒号
代换。

变量的冒号语法是嵌入式查询语言的标准 SQL,例如
心电图。 数组切片和类型转换的冒号语法是 PostgreSQL 扩展,
这有时会与标准用法相冲突。 冒号引号语法
将变量的值转义为 SQL 文字或标识符是 psql 扩展。

提示
可以根据您的喜好自定义提示 psql 问题。 三个变量
提示1, 提示2提示3 包含字符串和特殊的转义序列
描述提示的外观。 Prompt 1 是发出的正常提示
当 psql 请求一个新命令时。 当需要更多输入时发出提示 2
在命令输入期间,因为命令没有以分号或
报价未关闭。 运行SQL时发出提示3 COPY 命令,你是
期望在终端上输入行值。

所选提示变量的值按字面打印,除了百分比
遇到符号 (%)。 根据下一个字符,某些其他文本是
取而代之。 定义的替换是:

%M
数据库服务器的完整主机名(带域名),如果
连接通过 Unix 域套接字,或 [local:/目录/名称], 如果是 Unix 域
套接字不在默认位置编译。

%m
数据库服务器的主机名,在第一个点处截断,或者 [local] 如果
连接通过 Unix 域套接字。

%>
数据库服务器正在侦听的端口号。

%n
数据库会话用户名。 (此值的扩展可能会在
作为命令结果的数据库会话 设置 SESSION 授权.)

%/
当前数据库的名称。

%~
与 %/ 类似,但如果数据库是您的默认数据库,则输出为 ~(波浪号)。

%#
如果会话用户是数据库超级用户,则为 #,否则为 >。 (这
由于以下原因,此值的扩展可能会在数据库会话期间发生变化
命令 设置 SESSION 授权.)

%R
在提示 1 中通常为 =,但是 ^ 如果在单行模式下,并且 ! 如果会话是
与数据库断开连接(如果 \连接 失败)。 在提示 2
序列被替换为 -、*、单引号、双引号或美元
符号,取决于 psql 是否需要更多输入,因为命令不是
尚未终止,因为您在 /* ... */ 评论中,或者因为您在
在带引号或美元转义的字符串中。 在提示 3 中,序列不会产生
任何东西。

%x
交易状态:不在交易区块时为空字符串,或在交易区块中时为 *
一个交易块,或者! 当在失败的事务块中时,或者? 当。。。的时候
事务状态是不确定的(例如,因为没有连接)。

%l
当前语句中的行号,从 1 开始。

%数字
具有指定八进制代码的字符被替换。

%:姓名:
psql 变量的值 姓名. 有关详细信息,请参阅变量部分。

%`命令`
输出 命令,类似于普通的“反引号”替换。

%[ ... %]
提示可以包含终端控制字符,例如,改变
提示文本的颜色、背景或样式,或更改提示文本的标题
终端窗口。 为了使 Readline 的行编辑功能起作用
正确地,这些非打印控制字符必须被指定为不可见
用 %[ 和 %] 包围它们。 多对这些可以发生在
迅速的。 例如:

testdb=> \set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%#'

在 VT1 兼容上产生粗体 (33;) 黄底黑字 (40;100) 提示,
具有颜色功能的终端。
要在提示中插入百分号,请写成 %%。 默认提示是 '%/%R%# '
用于提示 1 和 2,“>>”用于提示 3。

备注
这个功能被 tcsh 无耻地抄袭了。

命令行 编辑
psql 支持 Readline 库以方便行编辑和检索。 这
命令历史在 psql 退出时自动保存并在 psql 时重新加载
启动。 还支持 Tab 补全,尽管补全逻辑没有
声称自己是一个 SQL 解析器。 由制表符完成生成的查询也会干扰
与其他 SQL 命令,例如 SET TRANSACTION ISOLATION LEVEL。 如果由于某种原因你
不喜欢选项卡完成,您可以通过将其放在名为的文件中来关闭它
.inputrc 在您的主目录中:

$如果 psql
设置禁用完成
$endif

(这不是 psql 而是 Readline 功能。阅读其文档以进一步了解
细节。)

环境



如果 \pset 列为零,则控制包装格式的宽度和宽度
确定宽输出是否需要寻呼机或应该切换到垂直
扩展自动模式下的格式。

PAGER
如果查询结果不适合屏幕,它们将通过此命令传送。
典型值或多或少。 默认值是平台相关的。 使用
可以通过使用禁用寻呼机 \pset 命令。

PG数据库
PG主机
PG端口
用户
默认连接参数(参见第 31.14 节,“环境变量”,在
文档)。

PSQL_编辑器
EDITOR
VISUAL
使用的编辑器 \e\f 命令。 变量按顺序检查
上市; 使用设置的第一个。

内置的默认编辑器是 Unix 系统上的 vi 和 Windows 上的 notepad.exe
系统。

PSQL_EDITOR_LINENUMBER_ARG
在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 \e or \f 与行号参数一起使用,此变量指定
用于将起始行号传递给用户编辑器的命令行参数。 为了
Emacs 或 vi 等编辑器,这是一个加号。 包括一个尾随空格
如果选项名称和行之间需要有空格,则变量的值
数字。 例子:

PSQL_EDITOR_LINENUMBER_ARG='+'
PSQL_EDITOR_LINENUMBER_ARG='--line '

Unix系统上默认是+(对应默认编辑器vi,有用
对于许多其他常见的编辑器); 但在 Windows 系统上没有默认值。

PSQL_历史
命令历史文件的替代位置。 执行波浪号 (~) 扩展。

PSQLRC
用户的 .psqlrc 文件的替代位置。 执行波浪号 (~) 扩展。

SHELL
执行的命令 \! 命令。

TMPDIR
用于存储临时文件的目录。 默认为 /tmp。

此实用程序与大多数其他 PostgreSQL 实用程序一样,也使用环境变量
libpq 支持(请参阅文档中的第 31.14 节“环境变量”)。

使用 onworks.net 服务在线使用 psql


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。