当前位置:  开发笔记 > 数据库 > 正文

在Postgres中将表的一部分行从一个数据库复制到另一个数据库的最佳方法是什么?

如何解决《在Postgres中将表的一部分行从一个数据库复制到另一个数据库的最佳方法是什么?》经验,为你挑选了1个好方法。

我有一个生产数据库,比如一千万行.我想从生产过去一小时中提取10,000行左右,然后将它们复制到我的本地方框中.我怎么做?

假设查询是:

SELECT * FROM mytable WHERE date > '2009-01-05 12:00:00';

如何获取输出,将其导出到某种转储文件,然后将该转储文件导入到我的本地数据库开发副本中 - 尽可能快速,轻松地?



1> Joey Adams..:

资源:

psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy

目的地:

psql -c "COPY mytable FROM STDIN" < mytable.copy

这假设mytable在源和目标中具有相同的架构和列顺序.如果不是这种情况,你可以尝试STDOUT CSV HEADERSTDIN CSV HEADER代替STDOUTSTDIN,但我还没有尝试过.

如果mytable上有任何自定义触发器,则可能需要在导入时禁用它们:

psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
         COPY mytable FROM STDIN; \
         ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有