【发布时间】:2013-08-05 17:40:18
【问题描述】:
请帮助创建等同于 mysql 查询的 postgresql 查询
LOAD DATA LOCAL INFILE 'file.txt' REPLACE INTO TABLE newtable TERMINATED BY ',' IGNORE 1 LINES;
【问题讨论】:
标签: postgresql
请帮助创建等同于 mysql 查询的 postgresql 查询
LOAD DATA LOCAL INFILE 'file.txt' REPLACE INTO TABLE newtable TERMINATED BY ',' IGNORE 1 LINES;
【问题讨论】:
标签: postgresql
PostgreSQL 中没有等效的功能 - 至少在当前的 9.3 或任何以前的版本中。
您必须分几步完成:
CREATE TEMPORARY TABLE ...COPY 进入临时表UPDATE ... FROM 后跟 INSERT INTO ... WHERE NOT EXISTS (...) 以合并数据DROP临时表搜索“postgresql bulk upsert”或“postgresql copy upsert”。
【讨论】:
您可能正在寻找COPY
COPY 将由 PostgreSQL 后端(用户“postgres”)运行。后端用户需要读取和写入数据文件的权限才能从/复制到它。您需要在 COPY 中使用绝对路径名。另一方面,\COPY 在当前的 $USER 下运行,并与该用户环境一起运行。 \COPY 可以处理相对路径名。如果 psql \COPY 可以处理您需要的内容,则相应地使用起来会更容易。
【讨论】: