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也一同遷移過來,也不能將原表的索引和主外鍵關係等復
制過來。