-2

请帮助创建等同于 mysql 查询的 postgresql 查询

LOAD DATA LOCAL INFILE 'file.txt' REPLACE INTO TABLE newtable  TERMINATED BY ',' IGNORE 1 LINES;
4

2 回答 2

3

PostgreSQL 中没有等效的特性——至少在当前的 9.3 或任何以前的版本中是这样。

您必须通过几个步骤执行此操作:

  • CREATE TEMPORARY TABLE ...
  • COPY进入临时表
  • 执行 anUPDATE ... FROM后跟 anINSERT INTO ... WHERE NOT EXISTS (...)以合并数据
  • DROP临时表

搜索“postgresql 批量更新”或“postgresql 复制更新”。

于 2013-08-05T09:19:05.993 回答
0

您可能正在寻找COPY

COPY 将由 PostgreSQL 后端(用户“postgres”)运行。后端用户需要读取和写入数据文件的权限才能从/复制到它。您需要在 COPY 中使用绝对路径名。另一方面,\COPY 在当前的 $USER 下运行,并与该用户环境一起运行。\COPY 可以处理相对路径名。如果 psql \COPY 可以处理您需要的内容,那么它会更容易使用。

于 2013-08-05T09:02:32.340 回答