📅  最后修改于: 2023-12-03 14:45:35.273000             🧑  作者: Mango
在 Postgres 中,我们可以使用 CREATE TABLE
语句复制已经存在的表。这是非常方便的,尤其是当我们需要在一个数据库中创建类似但也有一些不同的表时。
以下是复制表的语法:
CREATE TABLE new_table AS
SELECT * FROM old_table
WHERE condition;
其中 new_table
是新表的名称,old_table
是要复制的现有表的名称。
假设我们有一个名为 students
的表:
CREATE TABLE students(
id SERIAL PRIMARY KEY,
name CHARACTER VARYING(50) NOT NULL,
age INTEGER NOT NULL,
gender CHARACTER VARYING(10) NOT NULL
);
INSERT INTO students(name, age, gender) VALUES
('John Doe', 25, 'Male'),
('Jane Doe', 24, 'Female');
我们可以使用以下语法复制 students
表中所有行到新表 students_copy
中:
CREATE TABLE students_copy AS
SELECT * FROM students;
现在,如果我们查询 students_copy
表,我们将看到与 students
表完全相同的行:
SELECT * FROM students_copy;
id | name | age | gender
----+----------+-----+--------
1 | John Doe | 25 | Male
2 | Jane Doe | 24 | Female
(2 rows)
请注意,您可以为新表指定表空间和其他表选项(例如分区、索引等)以及条件来选择要复制的行。