postgresql 如何在Postgres中将某些表从一个模式复制到同一DB中的另一个模式,并保持原始模式?

5cnsuln7  于 2023-04-20  发布在  PostgreSQL
关注(0)|答案(4)|浏览(242)

我想在Postgres的同一个DB中只从schema1复制4个表到schema2。并且希望将这些表也保留在schema1中。如何在pgadmin和postgres控制台中做到这一点?

cnwbcb6i

cnwbcb6i1#

可以使用create table ... like

create table schema2.the_table (like schema1.the_table including all);

然后将数据从源插入到目标:

insert into schema2.the_table
select * 
from schema1.the_table;
szqfcxe2

szqfcxe22#

您可以使用CREATE TABLE AS SELECT。这样您就不需要插入。表将使用数据创建。

CREATE TABLE schema2.the_table
AS 
SELECT * FROM schema1.the_table;
r7xajy2e

r7xajy2e3#

从v12开始工作的简单语法:

CREATE TABLE newSchema.newTable
AS TABLE oldSchema.oldTable;
1wnzp6jl

1wnzp6jl4#

PG转储和PG还原通常是最有效的工具。
从命令行:

pg_dump --dbname=mydb --schema=my_schema --file=/Users/my/file.dump --format=c --username=user --host=myhost --port=5432
pg_restore --dbname=mydb --schema=my_schema --format=c --username=user --host=myhost --port=5432 /Users/my/file.dump --no-owner

相关问题