gpt4 book ai didi

postgresql - 如何从 PostgreSQL 将转储合并到数据库中?

转载 作者:行者123 更新时间:2023-11-29 11:14:54 25 4
gpt4 key购买 nike

我在不同机器 (PostgreSQL) 上处理相同的数据库模式。我想知道如何将数据从一台机器合并到另一台机器。模式有很多表(大约 10 个)。我想达到什么目的?

  1. 将机器A的数据转储到文件A.dmp
  2. 将文件A.dmp中的数据恢复到机器B
  3. 当一条记录已经存在于机器B中时,我不想将它插入到机器B中。

我正在尝试将数据从机器 A 转储到简单的 SQL 插入命令,但是当我尝试恢复它时,出现重复键错误。此外,我想从命令行恢复数据(我必须导入 250 MB 数据),因为现在我正尝试使用 pgAdmin 手动执行此操作。

最好的方法是什么?

最佳答案

我终于这样做了:

  1. 导出到转储:

    pg_dump -f dumpfile.sql --column-inserts -a -n <schema> -U <username> <dbname>
  2. 为所有表设置skip unique

    CREATE OR REPLACE RULE skip_unique AS ON INSERT TO <table>
    WHERE (EXISTS (SELECT 1 FROM <table> WHERE users.id = new.id))
    DO INSTEAD NOTHING
  3. 使用psql导入

    \i <dumpfile.sql>

关于postgresql - 如何从 PostgreSQL 将转储合并到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20187947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com