我在 Ubuntu 14.04 上使用 Postgres,并且一直在尝试将 csv 文件导入到 Postgres 中名为“天气”的表中。我查看了问题Postgres ERROR: Could not open file for read: Permission returned 并尝试使用该\copy命令而不是常规副本,但我仍然遇到相同的Permission Denied错误。
我有点犹豫是否要修改所有用户该目录的所有文件的所有权权限(如第一个答案中所建议的)。这是复制声明:
\copy weather from '/home/user1/Dropbox/Development/Databases/SQL/Codeschool/TrySQL/temp_data.csv' HEADER DELIMITER ',' CSV
Run Code Online (Sandbox Code Playgroud)
这是终端的屏幕截图:
为什么\copy这里不起作用?
我想使用pgadmin iii复制CSV文件.对此非常陌生.
当我从查询生成器运行"复制"命令时,我收到以下错误:
ERROR: could not open file 'C:\\Users\\Nick\\Documents\\CDR\\csv1.csv" for reading: Permission denied SQL state: 42501
Run Code Online (Sandbox Code Playgroud)
我发现这个提到其他一些地方(在这里 在这里,并在这里例如,和一般的解决方法是"Postgres的"添加到该文件的权限(人也劝动CSV到公用文件夹,但这会导致其他问题原因).
但是当我尝试向Windows 8中具有权限的人添加postgres时,当我检查名称时,我得到"找不到对象postgres"错误.
如果我添加"Everyone"它可以工作,但由于显而易见的原因,我不想留下一个带有"Everyone"访问权限的重要文件夹.
任何人都可以建议如何在Windows 8中赋予postgres权限?
谢谢!
找不到“C:\Program Files\PostgreSQL\13\pgAdmin 4\runtime\psql.exe”文件。请更正首选项对话框中的二进制路径
这是我尝试将数据导入 pg admin 时得到的响应。我之前导入过数据,没有保存。
我有一个表Postgres,我想copy into从csv文件中获取。我通常这样做:
\copy my_table from '/workdir/some_file.txt' with null as 'NULL' delimiter E'|' csv header;
Run Code Online (Sandbox Code Playgroud)
但现在的问题是,my_table我想在 上手动填写一列额外的内容copy,并具有相同的值“b”。这是我的表格:
some_file.txt:
col1 | col2 | col3
0 0 1
0 1 3
my_table :
xtra_col | col1 | col2 | col3
a 5 2 5
a 6 2 5
a 7 2 5
Desired my_table after copy into:
xtra_col | col1 | col2 | col3
a 5 2 5
a 6 2 5
a …Run Code Online (Sandbox Code Playgroud)