将 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。 \copy
在 psql
中可用。区别在于 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%';
您也可以在一个查询中进行复制和删除。但是,在这种情况下,我宁愿在删除之前仔细检查新数据库中的数据是否正常。
我有使命,正在寻求建议。 在我的 postgresql 数据库中,tables 之一包含几年的数据 - 我想将其中的一部分移动到另一个数据库。拆分的条件将是记录创建日期,但此字段是 varchar。 这个 table 相当大,您有什么建议可以快速安全地完成它?
我会使用 \copy
命令。 copy
在这里描述 https://www.postgresql.org/docs/current/sql-copy.html。 \copy
在 psql
中可用。区别在于 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%';
您也可以在一个查询中进行复制和删除。但是,在这种情况下,我宁愿在删除之前仔细检查新数据库中的数据是否正常。