在 PostgreSQL 中复制一个表
本文介绍了在 PostgreSQL 中复制表的几种方法
在 PostgreSQL 中,您可以使用以下几种方法复制一个表到一个新表:
- 使用
CREATE TABLE ... AS TABLE ...语句复制一个表。 - 使用
CREATE TABLE ... AS SELECT ...语句复制一个表。 - 使用
SELECT ... INTO ...语句复制一个表。
使用 CREATE TABLE ... AS TABLE ... 语句复制一个表
要将已有的 table_name 表复制为新表 new_table,包括表结构和数据,请使用以下语句:
CREATE TABLE new_table
AS TABLE table_name;
如果仅复制表结构,不复制数据,请在以上 CREATE TABLE 语句中添加 WITH NO DATA 子句,如下所示:
CREATE TABLE new_table
AS TABLE table_name
WITH NO DATA;
使用 CREATE TABLE ... AS SELECT ... 语句复制一个表
您还可以使用 CREATE TABLE ... AS SELECT ... 语句复制一个表。 这种方法可以复制部分数据到新表中。
要将已有的 table_name 表复制为新表 new_table,包括表结构和数据,请使用以下语句:
CREATE TABLE new_table AS
SELECT * FROM table_name;
如果您只需要复制部分满足条件的数据,请在 SELECT 语句中添加 WHERE 子句,如下:
CREATE TABLE new_table AS
SELECT * FROM table_name
WHERE contidion;
如果您只需要复制部分列到新表,请在 SELECT 语句中指定要复制的列的列表,如下:
CREATE TABLE new_table AS
SELECT column1, column2, ... FROM table_name
WHERE contidion;
如果您只需要复制表结构,请按如下方式使用 WHERE 子句:
CREATE TABLE new_table AS
SELECT * FROM table_name
WHERE 1 = 2;
这里在 WHERE 子句中使用了一个永远为假的条件。
使用 SELECT ... INTO ... 语句复制一个表
要使用 PostgreSQL SELECT INTO 语句将已有的 table_name 表复制为新表 new_table,请使用以下语法:
SELECT *
INTO new_table
FROM table_name
如果您只需要复制部分满足条件的数据,请添加 WHERE 子句,如下:
SELECT *
INTO new_table
FROM table_name
WHERE contidion;
如果您只需要复制部分列到新表,请在 SELECT 语句中指定要复制的列的列表,如下:
SELECT column1, column2, ...
INTO new_table
FROM table_name
WHERE contidion;
结论
本文阐述了在 PostgreSQL 中复制表的几种方法。注意,这几种方法都只能复制列的定义和数据,都不能将索引复制过去。