请帮助创建等于mysql查询的postgresql查询
LOAD DATA LOCAL INFILE 'file.txt' REPLACE INTO TABLE newtable TERMINATED BY ',' IGNORE 1 LINES;
答案 0 :(得分:3)
PostgreSQL中没有相同的功能 - 至少在当前的9.3或任何先前的版本中。
您必须通过以下几个步骤完成此操作:
CREATE TEMPORARY TABLE ...
COPY
进入临时表UPDATE ... FROM
后跟INSERT INTO ... WHERE NOT EXISTS (...)
合并数据DROP
临时表搜索“postgresql bulk upsert”或“postgresql copy upsert”。
答案 1 :(得分:0)
您可能正在寻找COPY
COPY将由PostgreSQL后端(用户“postgres”)运行。后端用户需要权限才能阅读&写入数据文件以便从/向它复制。您需要使用COPY的绝对路径名。另一方面,COPY在当前的$ USER下运行,并且具有该用户环境。并且\ COPY可以处理相对路径名。因此,如果psql \ COPY处理你需要的东西,它会更容易使用。