在 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 中复制表的几种方法。注意,这几种方法都只能复制列的定义和数据,都不能将索引复制过去。