我不小心从oracle数据库中删除了一个名为DEPARTMENT的表,我想将其还原。所以我用谷歌搜索并找到了解决方案。
这是我所做的:
SHOW RECYCLEBIN;
CRIMINALS BIN$hqnw1JViXO/gUwPAcgqn3A==$0 TABLE 2019-04-16:13:17:16
DEPARTMENT BIN$hqnw1JVjXO/gUwPAcgqn3A==$0 TABLE 2019-04-16:13:19:04
DEPARTMENT BIN$hqnw1JVkXO/gUwPAcgqn3A==$0 TABLE 2019-04-16:13:21:23
DEPARTMENT BIN$hqnw1JVnXO/gUwPAcgqn3A==$0 TABLE 2019-04-16:13:36:34
FLASHBACK table department TO BEFORE DROP;
Flashback succeeded.
如果您可以看到SHOW RECYCLEBIN QUERY,则可以判断存在多个部门表,并且所有部门都有不同的内容。我的问题是如何将所有三个表的内容合而为一。
答案 0 :(得分:0)
闪回之后,将每个DEPARTMENT
表重命名为新名称,例如
rename department to dept_1;
对除最后一个(名称仍为DEPARTMENT
)之外的所有其他对象执行此操作。然后将其余数据插入其中:
insert into department
select * from dept_1
union all
select * from dept_2;
请注意,唯一性可能会受到侵犯;如果表的描述已更改,则select *
可能不起作用(因此,您必须一一列出所有列的名称)。
但是,总的来说,这就是如何做到的主意。