psql 中 set、\set 和 \pset 的区别

Difference between set, \set and \pset in psql

在使用 psql 时,我有时会在何时使用 set\set\pset 之间感到困惑。我认为:

但是,我从来没有找到我认为对每一个都很好的解释。我的上述假设是否正确?

我正在使用 PostgreSQL 9.4

基本正确。重要的区别在于 SET 是一个 SQL 命令,而其他两个是 psql 元命令 - 由前导 \.

指示

SET 是一个 SQL 命令来改变 运行 时间参数。它在服务器上执行,与 psql 本身无关。

\set 是一个 psql 元命令:

Sets the psql variable name to value [...]

Note: This command is unrelated to the SQL command SET.

\pset 是另一个 psql 元命令:

This command sets options affecting the output of query result tables