尝试导入的文件中的权限被拒绝

Cel*_*tas 26 postgresql windows permissions

当我尝试使用\i不在 psql.exe 文件夹中的文件时,它会显示C:: permission denied. 例如,我有一个带有 SQL 命令的文件,C:\Users\Work\Desktop\School Work\load_database.sql当我输入\i "C:\Users\Work\Desktop\School Work\load_database.sql"它时,它说C:: permission denied. 我怎样才能解决这个问题?

我在这里找到了一个解决方法,您可以将 .sql 文件复制到与 psql.exe 所在的文件夹相同的文件夹中。

顺便说一句,\i代表进口吗?

dez*_*zso 49

您刚刚遇到了psqlWindows 上的一个特性。

在我的评论中,我只是想排除您确实没有获得必要许可的可能性。然后事实证明,即使在 Windows 上,您也必须使用“正常”斜杠而不是反斜杠,即:

\i 'C:/Users/Work/Desktop/School Work/load_database.sql'
Run Code Online (Sandbox Code Playgroud)

无论您psql从哪个文件夹开始,都应该可以正常工作。请注意,我使用了单引号 - 使用双引号你会得到

"C:/Users/Work/Desktop/School Work/load_database.sql": Invalid argument
Run Code Online (Sandbox Code Playgroud)

  • 如果反斜杠被转义(通过双倍)并且位于由单引号分隔的字符串内,则可以使用反斜杠:`\i 'c:\\some\\path\\myscript.sql'` 的效果与 `\i 一样好'c:/some/path/myscript.sql'` (2认同)

小智 5

将文件放在每个人都具有完全权限的某个目录中,例如“c:\tmp”

或者

为要导入的文件设置读取权限。

我把“每个人”的阅读许可。

导入文件后,您可以撤销该权限。

windows文件属性