Oracle:如何用另一个表替换表

时间:2017-12-07 14:00:39

标签: oracle

我有两个具有完全相同架构的表(table_fromtable_to)。现在我需要将table_from的数据复制到表table_to,方式是两个表中只有table_from的值。

table_to:

id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf

table_from:

id    name    desc
-----------------------
1     x       123
2     y       345

现在更换后,'table_to'应为。

id    name    desc
-----------------------
1     x       123
2     y       345

1 个答案:

答案 0 :(得分:1)

您需要从table_to删除所有内容,然后从table_from复制数据。

truncate table table_to;

insert into table_to
  select * from table_from;

两个注释:

您可以删除table_to并使用create table table_to as select * from table_from重新创建它。这是个坏主意;如果您在table_to上有触发器,或者根据表格有程序,它们将受到影响。

您可以delete from table_to代替truncate;但是,这将创建重做和撤消,并可能需要很长时间。如果您不需要撤消更改或从崩溃中恢复,truncate将起作用,并且会更快。