首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >psql命令与psql交互终端的区别

psql命令与psql交互终端的区别
EN

Stack Overflow用户
提问于 2020-07-08 10:14:37
回答 1查看 398关注 0票数 0

我尝试过各种搜索词的组合,但我找不到答案.

我是Postgres的新手,我喜欢使用psql交互式终端运行SQL命令。但是当我查找东西时,我经常发现人们使用psql作为命令而不是终端。

例如,可以使用以下命令还原数据库:

代码语言:javascript
复制
psql database-name < path/to/backup.dmp

我的问题是,它们是相同的还是不同的?当我以独立命令的形式运行psql时,我是否有效地运行了一个交互终端?如果是这样的话,这是否意味着在psql之后的任何内容也会作为输入psql终端的命令工作呢?因此,在上面的示例中,我也可以启动psql终端,然后运行以下命令?

代码语言:javascript
复制
postgres=# database-name < path/to/backup.dmp
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-08 11:44:44

这实际上是基本的bash内容。为了更好地理解这一点,您应该阅读Unix。

每个进程都有一个标准输入、一个标准输出和一个标准错误。默认情况下,启动程序的交互终端将用于这些,因此您键入的文本将是程序的输入,程序的输出将显示在屏幕上。

也可以重定向标准输入

代码语言:javascript
复制
command < file

然后,程序的输入将从file而不是从交互式终端获取。

这是Unix中的一个想法:用户只是另一个可以读取和写入的文件。

因此,<之前的所有内容都是命令调用的一部分,而<之后的所有内容都是要读取的文件。

如果希望在psql交互式会话中读取和执行SQL脚本,请使用

代码语言:javascript
复制
\i file.sql
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62792473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档