我有一个 CSV 文件。如果文件与数据库位于同一服务器上,我可以使用以下命令将数据插入数据库:
psql -h localhost -d local_mydb -U myuser -c "copy mytable (column1, column2) from '/path/to/local/file.csv' with delimiter as ','"
但是文件在本地服务器上,数据库在另一台(远程)服务器上。
如果我尝试为远程服务器执行此操作,请使用以下命令:
psql -h remotehost -d remote_mydb -U myuser -c "copy mytable (column1, column2) from '/path/to/local/file.csv' with delimiter as ','"
我得到一个权限被拒绝的异常。
如何在没有 super 用户权限的情况下将本地文件中的数据插入到远程服务器上的数据库中?
最佳答案
psql的 \copy
(注意反斜杠)允许您复制到远程数据库或从远程数据库复制,并且不需要 super 用户权限。
psql \
-h $hostname -d $dbname -U $username \
-c "\copy mytable (column1, column2) from '/path/to/local/file.csv' with delimiter as ','"
关于postgresql - 如何将CSV数据插入PostgreSQL数据库(远程数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33353997/