首页 > 代码库 > Oracle中复制表结构和表数据

Oracle中复制表结构和表数据

 

Oracle中复制表结构和表数据

1. 复制表结构及其数据(目标表不存在)

  create table table_name_new as select * from table_name_old;

2. 只复制表结构(目标表不存在,加入一个永远不可能成立的条件。):

  create table table_name_new as select * from table_name_old where 1=2;

3. 只复制表数据(目标表已经存在):

  如果两个表结构一样:

  insert into table_name_new select * from table_name_old;

  如果两个表结构不一样:

  insert into table_name_new(column1,column2...) 

  select column1,column2... from table_name_old;

4. 将多个表数据插入一个表中:
  insert into table_name_new(column1,column2...) 

  (select column1,column2... from table_name_old1) union all

  (select column1,column2... from table_name_old2);

注意:这样做有个很大的弊端,就是不能将原表中的default value也一同迁移过来,也不能将原表的索引和主外键关系等复

      制过来。

 

本文出自 “技术随笔” 博客,请务必保留此出处http://chengjiwang.blog.51cto.com/6263050/1407504