如何在PostgreSQL中合并Table_0、Table_1、Table_2创建新表?
在PostgreSQL中合并三张表创建新表的方法
你可以通过以下两种常用方式实现将三张表的所有数据合并到新表中:
方法一:直接创建并插入数据(推荐)
使用CREATE TABLE AS语句配合UNION ALL,一次性完成新表创建和数据插入,这种方式简单高效,且会自动继承原表的字段类型:
CREATE TABLE combined_transactions AS SELECT CustomerID, Trans_date FROM Table_0 UNION ALL SELECT CustomerID, Trans_date FROM Table_1 UNION ALL SELECT CustomerID, Trans_date FROM Table_2;
这里用UNION ALL而不是UNION,是因为UNION会自动去重,而我们需要保留三张表的所有原始数据,UNION ALL的执行效率也更高。
方法二:先创建表再插入数据
如果需要先自定义新表的结构(比如添加主键、约束等),可以先创建和原表结构匹配的表,再插入数据:
- 创建新表:
CREATE TABLE combined_transactions ( CustomerID VARCHAR(10), Trans_date DATE );
- 插入所有数据:
INSERT INTO combined_transactions (CustomerID, Trans_date) SELECT CustomerID, Trans_date FROM Table_0 UNION ALL SELECT CustomerID, Trans_date FROM Table_1 UNION ALL SELECT CustomerID, Trans_date FROM Table_2;
内容的提问来源于stack exchange,提问作者cillaw clarss
相关产品推荐
相关产品推荐

