AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 415323
Accepted
Chad Harrison
Chad Harrison
Asked: 2012-08-08 17:32:18 +0800 CST2012-08-08 17:32:18 +0800 CST 2012-08-08 17:32:18 +0800 CST

使用 ssh 在 postgres 中执行多行查询的便捷方法是什么?

  • 772

假设我需要在控制台中手写一些查询,执行多行查询(如CREATE TABLE语句)的最有效方法是什么?

我习惯于使用 Microsoft Management Studio,但现在我发现自己必须即时了解 PostgreSQL。

postgresql
  • 5 5 个回答
  • 36246 Views

5 个回答

  • Voted
  1. Best Answer
    TheGrimmScientist
    2016-10-13T13:59:31+08:002016-10-13T13:59:31+08:00

    以下将带您进入 PostgreSQL 的交互式终端:

    $ psql <your database name>
    

    然后输入\e(或\edit)打开编辑器(vi默认):

    # \e
    

    写一些查询:

    select now();
    

    最后,保存并退出您的编辑器(例如:wq在 中vi),然后psql将运行您刚刚编写的查询。

    要设置不同的编辑器,例如vim或nano,请设置以下环境变量之一:PSQL_EDITOR、EDITOR、VISUAL。

    有关详细信息,请参阅https://www.postgresql.org/docs/current/app-psql.html并搜索\e.

    • 45
  2. voretaq7
    2012-08-08T17:43:01+08:002012-08-08T17:43:01+08:00

    COPY确实没有“多行查询”这样的东西——就 PostgreSQL 而言,所有空格和换行符都是没有意义的(除非它们出现在字符串中,或​​者我们在语句或语句中谈论制表符等)其他一些特殊的地方)。

    通过 SSH“在控制台上”编写查询通常是使用该psql工具完成的,该工具是 Postgres 交互式终端(有关更多信息,请参阅文档)。

    您可以将包含查询的文本文件传递给psql使用该-f选项。

    您还可以psql在命令行上将查询传递给(根据您的 shell 引用),或通过 STDIN(标准输入流)将它们通过管道输入 - 请参阅-c选项。

    • 7
  3. Alex
    2020-04-16T00:05:44+08:002020-04-16T00:05:44+08:00

    显而易见,但如果有人不知道,您可以直接在 psql 提示符中编写多行语句:

    psql -h localhost -p 5432 -U postgres public
    public=# SELECT
    public=# *
    public=# FROM
    public=# mytable
    public=# LIMIT 1;
    

    请注意尾随;字符 - 任何 SQL 命令只有在发出该字符后才会执行。因此,最简单的方法是简单地复制和粘贴带有尾随;.

    • 4
  4. Konard
    2021-05-14T06:31:07+08:002021-05-14T06:31:07+08:00

    您可以在 bash(.sh 文件)中使用此语法:

    psql postgres://postgres:postgres@localhost:5432/postgres << SQL
    ALTER TABLE table DISABLE TRIGGER all;
    TRUNCATE table;
    ALTER SEQUENCE table_id_seq RESTART WITH 1;
    SQL
    
    • 4
  5. Nam G VU
    2018-04-23T21:44:11+08:002018-04-23T21:44:11+08:00

    您可以将查询写入临时文件并使用psql -f /path/to/temp/file

    • 2

相关问题

  • OS X 上的 Postgresql 安装问题

  • 修复 mysql 命令行程序中的 Control-C?

  • 有哪些好的 PostgreSQL 管理工具?[关闭]

  • Access 通过 ODBC 连接到远程 Postgresql 数据库是否可用?

  • 哪个数据库服务器扩展性更好:PostgreSQL 还是 MySQL?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve