从 postgresql 导出物化视图作为表?

Bri*_*ark 3 postgresql materialized-view

我有一个在 Postgresql 中创建的物化视图。我想知道有没有办法 pg_dump 物化视图,就好像它们是表一样,所以当我将它们导入另一个数据库时,它会将其视为表而不是从其他表创建的视图?

jja*_*nes 6

我不认为有一种单步方法可以做到这一点。你是想用一个 MV 还是用一个充满它们的整个数据库来做到这一点?

要使用所有列类型获得正确的 CREATE TABLE 语句,您可以这样做:

CREATE TABLE dummy1 (like mv1 including indexes);
Run Code Online (Sandbox Code Playgroud)

然后使用pg_dump -t dummy1 > mv1.sql来获取 CREATE TABLE 语句。

要获取数据,您将执行以下操作:

\copy (select * from mv1) to mv1.txt
Run Code Online (Sandbox Code Playgroud)

然后,您必须将这两个文件拼接在一起,并在第一个文件中将名称从“dummy1”更改为“mv1”,以便将定义和数据合并到一个可重播文件中。