选的filename或者把输出定向到一个独立的在执行 command的Unix shell。
\i filename
从文件filename中读取并把其内容当作从键盘输入的那样执行查询。
\l
列出服务器上所有
数据库的名字和它们的所有者以及字符集编码。
\o [{filename | |command}]
把后面的查询结果保存到文件filename里或者把后面的查询结果定向到一个独立的shell command。
\p
打印当前查询缓冲区到标准输出。
\q
退出psql程序。
\r
重置(清空)查询缓冲区。
\s [filename]
将命令行历史打印出或是存放到filename。如果省略filename,历史将输出到标准输出。
\t
切换是否输出列/字段名的信息头和行记数脚注。
\w {filename | |command}
将当前查询缓冲区输出到文件filename或者定向到Unix命令command。
\z [pattern]
生成一个带有访问权限列表的
数据库中所有表,视图和序列的列表。如果给出任何pattern,则被当成一个规则表达式,只显示匹配的表,视图和序列。
\! [command]
返回到一个独立的Unix shell或者执行Unix命令command。参数不会被进一步解释,shell将看到全部参数。
4. 内置命令应用示例:
在psql中,大部分的内置命令都比较易于理解,因此这里只是给出几个我个人认为相对容易混淆的命令。
# \c: 其中横线(-)表示仍然连接当前数据库,myuser是新的用户名。
postgres=# \c - myuser
Password for user myuser:
postgres=> SELECT user;
current_user
--------------
myuser
(1 row)
# 执行任意SQL语句。
postgres=# SELECT * FROM testtable WHERE i = 2;
i
---
2
(1 row)
# \g 命令会将上一个SQL命令的结果输出到指定文件。
postgres=# \g my_file_for_command_g
postgres=# \! cat my_file_for_command_g
i
---
2
(1 row)
# \g 命令会将上一个SQL命令的结果从管道输出到指定的Shell命令,如cat。
postgres=# \g | cat
i
---
2
(1 row)
# \p 打印上一个SQL命令。
postgres=# \p www.2cto.com
SELECT * FROM testtable WHERE i = 2;
# \w 将上一个SQL命令输出到指定的文件。
postgres=# \w my_file_for_option_w
postgres=# \! cat my_file_for_option_w
SELECT * FROM testtable WHERE i = 2;
# \o 和\g相反,该命令会将后面psql命令的输出结果输出到指定的文件,直到遇到下一个独立的\o,
# 此后的命令结果将不再输出到该文件。
postgres=# \o my_file_for_option_o
postgres=# SELECT * FROM testtable WHERE i = 1;
# 终止后面的命令结果也输出到my_file_for_option_o文件中。
postgres=# \o
postgres=# \! cat my_file_for_option_o
i
---
1
(1 row)
作者 Stephen_Liu