📌  相关文章
📜  将 postgres 表从一个模式复制到另一个模式 - SQL (1)

📅  最后修改于: 2023-12-03 15:09:32.501000             🧑  作者: Mango

将 postgres 表从一个模式复制到另一个模式 - SQL

在 PostgreSQL 数据库中,可以使用以下 SQL 语句将一个模式中的表复制到另一个模式中:

CREATE TABLE new_schema.new_table AS
    SELECT * FROM old_schema.old_table;

这将创建一个名为 new_table 的新表,其中包含从 old_table 中选择的所有数据。

您还可以使用以下 SQL 语句将一个表复制到相同的模式中并更改表名:

CREATE TABLE new_table AS
    SELECT * FROM old_table;

这将创建一个名为 new_table 的新表,其中包含从 old_table 中选择的所有数据。

注意: 复制表时,请确保新表中的列与原始表中的列具有相同的名称和数据类型。

如果您想复制整个模式,而不仅是单个表,可以使用以下 SQL 语句复制模式及其中的所有表:

CREATE SCHEMA new_schema;
CREATE SCHEMA IF NOT EXISTS new_schema;

SET search_path TO old_schema;

SELECT 'CREATE TABLE new_schema.' || table_name || ' AS TABLE ' || table_schema || '.' || table_name || ';' 
FROM information_schema.tables 
WHERE table_schema = 'old_schema' 
AND table_type = 'BASE TABLE';

SET search_path TO new_schema;

<执行上面的查询并将其结果复制到终端>

这将为您创建一个名为 new_schema 的新模式,并复制其中所有的表。请注意,此方法只复制表结构,而不复制数据。

我希望这篇文章对您有所帮助,祝您编写愉快的 SQL 代码!