📅  最后修改于: 2023-12-03 15:09:32.501000             🧑  作者: Mango
在 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 代码!