使用以下查询,我能够导出两个表,从第一个表中随机选择 500 个项目:
copy (select * from (
select 1 + floor(random() * 1040000)::integer as "documentUUID"
from generate_series(1, 600) g
group by 1) r
join "Document" using ("documentUUID")
inner join "Citation" on ("Document"."citation_id" = "Citation"."citationUUID")
limit 500)
to '/tmp/data.sql';
我想将此数据导入我的测试数据库,但COPY FROM
似乎无法处理多表导入。
我怎样才能使这项工作?
您的问题是查询的输出(行结构)与您的任何一个表都不匹配。
一种可能的解决方案是创建一个临时表以放入随机生成的 ID 并使用必要的连接一次从一个表复制数据。
请注意,我删除了双引号,因为它们对给定的表名和列名没有任何影响。此外,我看不出在生成随机文档 ID 时分组的优点是什么。此外,我不会调用 ID
...UUID
,因为 UUID 是一种在非常多样化的应用程序中经常使用的特定类型。