📅  最后修改于: 2023-12-03 15:33:44.293000             🧑  作者: Mango
在 Postgres 中,可以使用 SQL 语句从一个表中提取数据,并将其插入另一个表中。这在数据迁移、数据复制、数据备份等场景中非常有用。
本文将向您介绍如何使用 SQL 语句从另一个表填充表,并提供范例代码和解释。
INSERT INTO SELECT
语句可以从一个表中选择数据,并将其插入另一个表中。以下是该语句的基本语法:
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE conditions;
其中,table1
是要提取数据的表,table2
是要填充数据的表。column1
, column2
, column3
是要提取和填充的列。conditions
是所选行的条件。如果没有 WHERE
子句,则选择所有行。
范例代码:
-- 创建一个源表
CREATE TABLE source_table (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
age INTEGER
);
-- 向源表中插入数据
INSERT INTO source_table (name, age)
VALUES
('Alice', 25),
('Bob', 30),
('Charlie', 35);
-- 创建一个目标表
CREATE TABLE target_table (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
age INTEGER
);
-- 从源表向目标表中填充数据
INSERT INTO target_table (name, age)
SELECT name, age
FROM source_table;
-- 查看目标表数据
SELECT * FROM target_table;
id | name | age
----+---------+-----
1 | Alice | 25
2 | Bob | 30
3 | Charlie | 35
(3 rows)
在上面的示例中,我们首先创建了一个源表 source_table
,然后向其中插入了三行数据。接着,我们创建了一个目标表 target_table
,然后使用 INSERT INTO SELECT
语句从 source_table
中选择数据,并将其插入 target_table
中。
使用 INSERT INTO SELECT
语句时,以下是您应该注意的一些事项:
SELECT
子句中选择需要的列。现在您已经知道如何使用 INSERT INTO SELECT
语句从另一个表中填充表了。请确保在使用时遵循上述技巧和注意事项,以确保正确性和可靠性。
希望这篇文章对您有帮助!