psql变量

psql 提供变量替换特性,类似于shell的变量。

psql的变量就是简单的名字/值对,名字只能有字母、数字和下划线组成。

使用\set命令来设置变量:

1
=> \\set foo bar

这样设置了变量foo,其值为bar。这样来显示变量的值:

1
2
=> \\echo :foo
bar

使用\set只指定变量名,不指定值时,会设置该变量,只不过其值为空。

使用\unset命令来销毁变量:

1
=> \\unset foo

使用\set命令,不提供任何参数,显示全部的变量。
下面展示的是系统预置的变量:

1
2
3
4
5
6
7
8
9
10
11
12
=> \\set
AUTOCOMMIT = 'on'
PROMPT1 = '%/%R%# '
PROMPT2 = '%/%R%# '
PROMPT3 = '>> '
VERBOSITY = 'default'
VERSION = 'PostgreSQL 9.4.8 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit'
DBNAME = 'reis'
USER = 'reis'
HOST = 'localhost'
PORT = '5432'
ENCODING = 'UTF8'

查看PostgreSQL版本

因此获取postgresql版本就有了另外一种方法:

1
2
=> \\echo :VERSION
PostgreSQL 9.4.8 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit

另一种方法是:

1
2
3
4
5
=> SELECT VERSION();
version
-----------------------------------------------------------------------------------------------
PostgreSQL 9.4.8 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
(1 row)

二者结果是一样的。

===
[erq]