db2查看表结构_【赵强老师】删除表和Oracle的回收站

bf0c4c1703fd7cd993a9491ac04d4acb.png

一、Oracle的Drop Table语句

首先,我们来看一下Oracle Drop Table的语法格式。

1fca6cb1eb3fb1e7ca41c46e421a3edd.png

解释一下里面的参数:

schema
  • Schema表示方案名称,这里可以理解为用户名,缺省为当前用户下的表。比如,要删除scott用户下的emp表,drop table scott.emp
purge
  • purge可选项,如果开启了回收站(oracle 10g以后,回收站默认是开启的)功能,不带purge选项,表示删除的表放进回收站,空间不回收 。使用flashbask可以闪回该表。带purge选项,则表示将表删除,释放空间。
cascade constraints
  • 可选项,如果有其它表关联到要删除的表的主键列或唯一键列(要删除的表是主表(父表),从表(子表)有外键关联到这张表),那么,直接用drop table会报错,这时候如果想要强制删除这张表,就需要加上cascade constraints选项。

二、闪回删除:Flashback Drop

使用闪回删除功能,可以撤消 DROP TABLE 语句产生的影响,而不需要求助于传统时间点恢复。这是由回收站实现的,通过 DBA_RECYCLEBIN 视图可查询回收站。

  • 查看当前数据库的回收站功能是否开启
conn / as sysdbaselect value from v$parameter where name='recyclebin';
ce8d2084ecf0978989ceb65d0ceeef73.png
  • 执行drop table语句
使用scott用户登录SQL> conn scott/tigerConnected.查看当前用户下的表SQL> select * from tab;TNAME     TABTYPE  CLUSTERID-------------------- ------- ----------BONUS     TABLEDEPT     TABLEEMP     TABLEEMP1     TABLESALGRADE     TABLE删除一张表SQL> drop table emp1;Table dropped.查看当前用户下的表SQL> select * from tab;TNAME              TABTYPE  CLUSTERID--------------------            ------- ----------BIN$opkhRg3T0MPgVaUg          TABLEq/kbkw==$0BONUS              TABLEDEPT              TABLEEMP              TABLESALGRADE              TABLE
844b213bd3be479b47dc0ecb54866cdc.png
  • 通过回收站中的对象名称查询表的数据
下面的方式是错误的:select * from BIN$opkhRg3T0MPgVaUgq/kbkw==$0;需要加上双引号:select * from "BIN$opkhRg3T0MPgVaUgq/kbkw==$0";
e26aacfd2cac4e6be08cf4de70ea0084.png
  • 查看回收站
show recyclebin;
e8cd0c8a312dc58d0488d06e045ba417.png
  • flashback table的语法格式
cc09fde63cc75e614bbaf2fc6361e7d9.png

在执行闪回表操作期间,数据库获取闪回列表中所有指定的报表独立DML锁。当正在恢复到之前状态时,这些锁阻止对表的任何操作。闪回表操作在单个事物中执行,不管闪回表中指定表的数量。要么所有的表都恢复到早期状态,要么都没恢复。如果任何表的闪回表操作失败,那么整个语句都失败。闪回操作完成时,表中的数据与表之前的时间点一直。但是,FLASHBACK TABLE到SCN或时间戳不保存rowid,FLASHBACK TABLE TO BEFORE DROP不能恢复引用约束。数据库不能恢复与表关联的早期结构的统计信息。表当前的索引是恢复,并反映还原点表的状态。如果该索引在还原点不存在,数据更新索引里来反映还原点表的状态。然而,如果索引是在当前时间和还原点之间被删除,是不能恢复。

  • 执行闪回删除
flashback table emp1 to before drop;也可以通过回收站中的名字执行闪回:flashback table “BIN$opkhRg3T0MPgVaUgq/kbkw==$0” to before drop;
5d9230dcc863c3f4d1341dc2083417e7.png
  • 清空回收站
purge recyclebin;
fe6d0a9293e0a2fea602baeca885a7d6.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值