- 主要区别
select into from 和 insert into select都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建。insert into select from 要求目标表存在。 INSERT INTO SELECT
从原表表复制数据,然后把数据插入到一个已存在的目标表中。目标表中任何已存在的行都不会受影响。SELECT INTO
从一个表复制数据,然后把数据插入到另一个新表中。
SELECT INTO 语句可用于通过另一种模式创建一个新的空表。只需要添加促使查询没有数据返回的 WHERE 子句即可。
**注意:
在Oracle中select into from不可以使用—–原因很简单:select into是PL/SQL language 的赋值语句!如果使用则Oracle会抛出0RA-00905:missing keyword的异常!
但是可以用create table select代替该功能!!!**
备份表数据: create table Backup2017 as select * from scott.emp
还原表数据:insert into emp select * from scott.emp
复制表结构及其数据:
create table table_name_new as select * from table_name_old
只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
只复制表数据:
如果两个表结构一样:
insert into table_name_new select * from table_name_old
如果两个表结构不一样:
insert into table_name_new(column1,column2…) select column1,column2… from table_name_old