postgresql将查询到的多张历史表的数据转移到多张正式表表,具体sql展示
时间: 2024-11-27 12:09:23 浏览: 16
在PostgreSQL中,如果你想从多张历史表(如`history_table1`, `history_table2`, 等)合并数据并将其转移到多张正式表(如`final_table1`, `final_table2`),你可以使用`UNION ALL`、`JOIN`或者`INSERT INTO SELECT`等SQL语句。这里有一个简单的例子:
假设你想把`history_table1`和`history_table2`的某些列合并,并插入到`final_table1`,你可以这样做:
```sql
CREATE TABLE final_table1 AS
(
SELECT * FROM history_table1
UNION ALL
SELECT * FROM history_table2
);
-- 如果需要做更复杂的合并,比如基于某个条件选择数据,可以考虑JOIN
CREATE TABLE final_table2 AS
SELECT h1.column1, h1.column2, f.column3
FROM history_table1 h1
LEFT JOIN final_table2 f ON h1.common_column = f.common_column
WHERE h1.history_status = 'valid'; -- 这里假设有共同的'common_column'
-- 或者使用INSERT INTO ... SELECT来逐行转移数据,记得先创建目标表结构
CREATE TABLE final_table3 AS
BEGIN
INSERT INTO final_table3 (column1, column2)
SELECT column1, column2 FROM history_table1;
INSERT INTO final_table3 (column3)
SELECT column3 FROM history_table2;
END;
--
阅读全文