【问题标题】:Mysql to Posgresql query conversionMysql 到 Postgresql 查询转换
【发布时间】:2013-08-05 17:40:18
【问题描述】:

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

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

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    PostgreSQL 中没有等效的功能 - 至少在当前的 9.3 或任何以前的版本中。

    您必须分几步完成:

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

    搜索“postgresql bulk upsert”或“postgresql copy upsert”。

    【讨论】:

    • 你能告诉我在第 3 步中的确切查询吗?做一个 UPDATE ... FROM 后跟一个 INSERT INTO ... WHERE NOT EXISTS (...) 来合并数据
    【解决方案2】:

    您可能正在寻找COPY

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2019-06-22
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多