我遇到了需要运行一些控制台命令的困境psql
,因为同事需要\i
在保存的脚本中使用 psql 的指令来从另一个文件执行额外的 SQL 语句,但我注意到 psql 因 pgAdmin 向这些文件写入一些额外的垃圾字符而阻塞了这些文件:
psql:C:/tmp/junk.sql:3: ERROR: syntax error at or near "CREATE"
LINE 1: CREATE TABLE junktable (
psql
这里需要它,因为\i
它不是 SQL 的正式部分,所以如果您将这样的命令直接发送到数据库的解释器,它就不会运行,即使它有办法获取本地磁盘上的文件。
为了简单起见,我想找到一种方法让 PgAdmin 的 sql 编辑器能够与 Postgres 很好地兼容,这样我就不会突然告诉工作中的其他人下载并安装另一个编辑器来解决这个问题;他们已经知道并使用 pgAdmin。
相关问题:
答案1
令人高兴的是,有一个解决方案不需要改变 psql.exe 或类似的东西。
如果您在 PgAdmin III 的选项(文件 -> 选项)中仔细查看,在“查询文件”中的“查询工具”标题下,您会发现一个复选框切换选项“为 UTF 文件写入 BOM”。
点击“确定”后,您应该能够从 PgAdmin 保存与 psql.exe 的打包版本兼容的文件。如果您现有的文件包含 UTF BOM 表,导致 psql 无法正确读取它们,您可以从 PgAdmin 的 SQL 查询编辑器加载它们,然后使用“另存为”选项将它们保存到位。只需进行一些小改动(例如添加注释行并执行常规保存(ctrl-S))也应该有效。