我有一个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 ','"

我收到一个被拒绝的异常(exception)。

如何在没有 super 用户特权的情况下将数据从本地文件插入远程服务器上的数据库?

最佳答案

\copy(请注意反斜杠)使您可以向远程数据库复制或从远程数据库复制,并且不需要 super 用户特权。

psql -h remotehost -d remote_mydb -U myuser -c "\copy mytable (column1, column2)  from '/path/to/local/file.csv' with delimiter as ','"

如果使用Java,则可以在JDBC驱动程序中使用CopyManager:https://jdbc.postgresql.org/documentation/publicapi/org/postgresql/copy/CopyManager.html

关于postgresql - 如何将CSV数据插入PostgreSQL数据库(远程数据库),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33353997/

10-15 09:50
查看更多