\gexec
将当前查询缓冲区发送到服务器,然后将查询输出的每行每列视为要执行的 SQL 语句。例如,要在 my_table 的每一列上创建索引:
当前查看 PostgreSQL 18。
中文定义与说明
将当前查询缓冲区发送到服务器,然后将查询输出的每行每列视为要执行的 SQL 语句。例如,要在
my_table的每一列上创建索引:=>
SELECT format('create index on my_table(%I)', attname)->FROM pg_attribute->WHERE attrelid = 'my_table'::regclass AND attnum > 0->ORDER BY attnum->\gexecCREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX生成的查询按照返回行的顺序执行;如果有多列,则在每行内从左到右执行。NULL 字段会被忽略。生成的查询按原样发送到服务器进行处理,因此不能是 psql 元命令,也不能包含 psql 变量引用。如果某个查询失败,仍会继续执行其余查询,除非设置了
ON_ERROR_STOP。每个查询的执行都受ECHO处理的影响。(通常,在使用\gexec时,适宜将ECHO设为all或queries。)查询日志、单步模式、计时及其他查询执行功能也适用于每个生成的查询。如果当前查询缓冲区为空,则重新执行最近发送的查询。
说明
将当前查询缓冲区发送到服务器,然后将查询输出的每行每列视为要执行的 SQL 语句。例如,要在 my_table 的每一列上创建索引:
- 客户端
- psql 18.7
- 区分大小写的写法
- \gexec
用法
\gexec本版手册中的写法
| 命令 | 手册中的后缀修饰符 |
|---|---|
| \gexec | 此语法签名未列出 |
手册定义
将当前查询缓冲区发送到服务器,然后将查询输出的每行每列视为要执行的 SQL 语句。例如,要在
my_table的每一列上创建索引:=>
SELECT format('create index on my_table(%I)', attname)->FROM pg_attribute->WHERE attrelid = 'my_table'::regclass AND attnum > 0->ORDER BY attnum->\gexecCREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX生成的查询按照返回行的顺序执行;如果有多列,则在每行内从左到右执行。NULL 字段会被忽略。生成的查询按原样发送到服务器进行处理,因此不能是 psql 元命令,也不能包含 psql 变量引用。如果某个查询失败,仍会继续执行其余查询,除非设置了
ON_ERROR_STOP。每个查询的执行都受ECHO处理的影响。(通常,在使用\gexec时,适宜将ECHO设为all或queries。)查询日志、单步模式、计时及其他查询执行功能也适用于每个生成的查询。如果当前查询缓冲区为空,则重新执行最近发送的查询。
相关条目
文档与源码
来源构建
- 版本
- 18.7
- 构建
- https://ftp.postgresql.org/pub/source/v18.7/postgresql-18.7.tar.bz2
- 来源指纹
1b2d62b4845aa46374f2cb680f95d3392322cc8128646992ae4e18d0e7084915
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回psql 命令 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。