【问题标题】:Using squirrel sql with postgresql: backslash syntax error?将 squirrel sql 与 postgresql 一起使用:反斜杠语法错误?
【发布时间】:2014-01-26 20:57:51
【问题描述】:

我正在尝试在 Squirrel SQL sql 客户端中运行以反斜杠开头的基本 postgresql 命令。例如,我希望能够输入

\dt 

意思是“显示表格”而不是

"SELECT * FROM information_schema.tables WHERE table_schema = 'public';"  

这适用于 psql 命令行。但是,当我尝试在 Squirrel 中运行“\dt”时,我收到一条语法错误消息:

Error: ERROR: syntax error at or near "\"
Position: 1
SQLState:  42601
ErrorCode: 0

我假设 Squirrel 正在执行某种 SQL 语法检查?有谁知道一种使以反斜杠开头的 PostgreSQL 命令在 Squirrel SQL 中工作的方法?我已经安装了 Postgres 插件...

谢谢,

【问题讨论】:

  • \dt 不是(常规)SQL 命令 - 它特定于命令行客户端 psql,因此不能在除此之外的任何地方运行。您可以运行的 SQL 语句记录在此处:postgresql.org/docs/current/static/sql-commands.html
  • 啊好的。但是与 gui sql 客户端相比,psql 有一些缺点——例如,它不能很好地显示包含许多列的输出。您是否碰巧知道是否有包含短反斜杠命令的 gui sql 客户端?
  • 我不这么认为,但是我并没有使用所有的客户端:wiki.postgresql.org/wiki/… 但我很惊讶 Squirrel 没有其他方法可以在模式中列出表(我不使用松鼠)
  • 确实如此,但我不喜欢在可以打字时点击菜单。谢谢。

标签: postgresql squirrel-sql


【解决方案1】:

反斜杠命令是psql 客户端的一部分,而不是 PostgreSQL 后端服务器的一部分。 psql 将它们转换成批量 SQL,您可以通过运行带有 -E 标志的 psql 来查看,并使用结果生成显示的输出。

这意味着您不能从其他客户端使用这些命令。

除了无法在 PostgreSQL 协议会话中使用 pg_dump 或从后端服务器获得等效功能之外,这也是一个常见问题解答。

此时唯一真正的选择是使用理解information_schema 或PostgreSQL 目录(pg_catalog) 的客户端,并且可以生成您想要的显示。一个流行的选择是 PgAdmin-III,尽管我自己坚持使用 psql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多