我刚开始尝试学习sql。我是编程中的一个完整的菜鸟(就是你知道) 所以我的问题是我试图在pgAdmin4 1.5中的sql表中复制现有的csv文件。
所以我正在运行此查询来复制csv:
中的数据COPY console_games FROM '/users/user1/Desktop/ConsoleGames.csv' DELIMITER ',' CSV HEADER;
我得到了这个结果:
********** Error **********
ERROR: could not open file "/Users/user1/Desktop/ConsoleGames.csv" for reading: Permission denied
SQL state: 42501
我已经更改了此文件的权限,以便所有用户都可以读写,但我仍然收到错误消息。
请帮忙! (考虑到我是一个绝对的新手)
如果您需要更多信息来解决问题,我会尽力找到它!
答案 0 :(得分:2)
使用PgAdmin4的批量加载功能导入CSV。这将在幕后进行COPY ... FROM STDIN
。 PgAdmin4将使用您的用户权限访问该文件,而不是像文件中的直接COPY
那样访问postgres服务器的权限。
答案 1 :(得分:0)
我通过在PostgreSQL bin中创建一个名为Database的文件夹来解决此问题,在该文件夹中保存了所有要处理的数据文件。我在Mac和Windows上都使用pgAdmin4。在Windows上找到该垃圾箱相当简单,而在Mac上找到它有点棘手,因为存放垃圾箱的图书馆是隐藏的。如果使用Windows,请尝试将文件保存在C:\ProgramFiles\PostgreSQL\10\bin\Database
上,如果使用Mac,请尝试将文件保存在/Library/PostgreSQL/10/bin/Database/
上。可以通过按command+shift+g
并在转到文件夹上键入~/Library
来找到库。您的Mac需要输入密码才能在媒体库中进行更改。将数据文件保存到此处后,在pgAdmin4上的代码应如下所示:
COPY console_games FROM 'C:\ProgramFiles\PostgreSQL\10\bin\Database\ConsoleGames.csv' DELIMITER ',' CSV HEADER;
或
COPY console_games FROM '/Library/PostgreSQL/10/bin/Database/ConsoleGames.csv' DELIMITER ',' CSV HEADER;
答案 2 :(得分:0)
我遇到了同样的问题,这就是我的解决方法
在Mac上, 1.打开“系统偏好设置”
选择“安全和隐私”选项
从列表中选择“全盘访问”
授予对PgAdmin和postgres的访问权限