\gexec
将当前查询缓冲区发送到服务器,然后将查询输出的每行每列视为要执行的SQL语句。例如,要在 my_table 的每一列上创建索引:
当前查看 PostgreSQL 18.6。
说明
将当前查询缓冲区发送到服务器,然后将查询输出的每行每列视为要执行的SQL语句。例如,要在 my_table 的每一列上创建索引:
- 客户端
- psql 18.6
- 区分大小写的写法
- \gexec
用法
\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.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回psql 命令 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。