将 table postgresql 的一部分移动到另一个数据库

move part of table postgresql to another database

我有使命,正在寻求建议。 在我的 postgresql 数据库中,tables 之一包含几年的数据 - 我想将其中的一部分移动到另一个数据库。拆分的条件将是记录创建日期,但此字段是 varchar。 这个 table 相当大,您有什么建议可以快速安全地完成它?

我会使用 \copy 命令。 copy 在这里描述 https://www.postgresql.org/docs/current/sql-copy.html\copypsql 中可用。区别在于 copy 假设文件路径在数据库机器上,而 \copy 假设它在运行 psql 的机器上。

您可以像这样使用 \copy(这是上一页的示例):

\COPY (SELECT * FROM country WHERE country_name LIKE 'A%') 
TO 'country_data';

这样您就可以将所有行写入此文件。然后你也可以使用 copy:

将它加载到另一个数据库
\COPY country FROM 'country_data';

然后您可以删除数据:

DELETE FROM country WHERE country_name LIKE 'A%';

您也可以在一个查询中进行复制和删除。但是,在这种情况下,我宁愿在删除之前仔细检查新数据库中的数据是否正常。