📜  PostgreSQL – 复制表(1)

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

PostgreSQL – 复制表

在 PostgreSQL 中,复制表是复制一个现有表的结构和数据到一个新表。这个过程可以通过以下两种方式实现:

  1. 使用 CREATE TABLE AS 语句
CREATE TABLE new_table AS
SELECT *
FROM old_table;

这种方式会创建一个新的表,与原始表相同的结构和数据。我们可以给新表一个不同的名字并使用WHERE子句限制行,以便只复制部分行。

  1. 使用 CREATE TABLE 和 INSERT INTO 语句
CREATE TABLE new_table (LIKE old_table);
INSERT INTO new_table SELECT * FROM old_table;

这种方式也会创建一个新的表,并使用与原始表相同的结构,然后使用 INSERT INTO 语句将原始表的数据插入到新表中。

但是,这种方式有一个限制,就是不能复制主键和约束。因此,在这种情况下,最好使用 CREATE TABLE AS 语句。

需要注意的是,当我们从一个表复制数据时,我们也复制了该表中的所有索引、触发器和其他限制。因此,如果我们要从一个大表中复制数据,这可能需要一些时间。

以上就是 PostgreSQL 中复制表的两种方式,我们可以根据具体情况选择使用哪种方式复制表。