GaussDB select into和insert into的用法

发布于:2025-07-21 ⋅ 阅读:(13) ⋅ 点赞:(0)

1 select into 作用

select into 语句从一个表中复制数据,然后将数据插入到另一个新表中。

2  select into 语法

我们可以把所有的列都复制到新表中:
select * into newtable [in externaldb] from table1;
或者只复制希望的列插入到新表中:
select column_name(s) into newtable [in externaldb] from table1;

提示:

将使用select语句中定义的列名和类型创建新表。您可以使用as子句来应用一个新名称。


3 select into 举例

创建 customers 的备份复件: 

select * into 
customers_bak0720 
from customers;

结果:

可以得到一个和customers表结构及数据一模一样的表customers_bak0720。

以下将customer表备份到tcsdn.customers_bak0720;

select * into tcsdn.customers_bak0720 from customers;

只复制一些列插入到新表中:

 select name,addr into customers_bak0721 from csdn.customers;

提示:

select into 语句可以用于在另一种模式下创建一个新的空表,即只有表结构,没有数据。只需添加where子句,使查询返回时没有数据:
select * into newtable from table1 where 1=0;

4 insert into select 作用

insert into select 语句从表中复制数据并将数据插入现有的表中。目标表中的任何现有行都不会受到影响。

5 insert into select 语法


我们可以将所有列从一个表中复制到另一个已经存在的表中:
insert into
table2
select * from table1;
或者我们可以把想要的列复制到另一个现有的表中:
insert into
table2
(column_name(select column_name(s)
from table1;
 

6 insert into select 举例

只将上海供应商的副本插入costomers

 insert into 
customers (name, province) 
select name,province 
from suppliers where province='上海市';

结果:

6 批注

select into 用来复制表和表结构是非常方便的,特别是在进行表之间计算时,可以将部分数据先插入到一个临时表中,计算完成再删除该临时表。insert into select则是插入语句的另外的一种写法,可以直接将查询的结果插入到需要的表中,从而省去逐条手工插入数据的过程。