oracle函数 的 Oracle Drop Table

在本教程中,将学习如何使用Oracle DROP TABLE语句删除现有的表。

Oracle DROP TABLE语句简介

要将表移动到回收站或将其从数据库中完全删除,请使用DROP TABLE语句:

DROP TABLE schema_name.table_name

[CASCADE CONSTRAINTS | PURGE];

在这个语句中:

首先,指出要在DROP TABLE子句之后删除的表及其模式。如果不明确指定模式名称,则该语句假定将从模式中删除该表。

其次,指定CASCADE CONSTRAINTS子句删除引用表中主键和唯一键的所有参照完整性约束。 如果存在这种引用完整性约束,并且不使用此子句,Oracle将返回错误并停止删除表。

第三,如果想删除表格并且一次释放与之关联的空间,指定PURGE子句。 通过使用PURGE子句,Oracle不会将表及其依赖对象放入回收站。

请注意,PURGE子句不允许您回滚或恢复删除的表。 因此,如果不希望敏感数据出现在回收站中,这很有用。

Oracle DROP TABLE示例

我们来看看使用DROP TABLE语句的一些例子。

1. 基本的Oracle DROP TABLE示例

以下语句为演示创建persons表:

CREATE TABLE persons (

person_id NUMBER,

first_name VARCHAR2(50) NOT NULL,

last_name VARCHAR2(50) NOT NULL,

PRIMARY KEY(person_id)

);

以下示例从数据库中删除person表:

DROP TABLE persons;

2. Oracle DROP TABLE CASCADE CONSTRAINTS示例

以下语句创建两个名为brands和cars的新表:

CREATE TABLE brands(

brand_id NUMBER PRIMARY KEY,

brand_name varchar2(50)

);

CREATE TABLE cars(

car_id NUMBER PRIMARY KEY,

make VARCHAR(50) NOT NULL,

model VARCHAR(50) NOT NULL,

year NUMBER NOT NULL,

plate_number VARCHAR(25),

brand_id NUMBER NOT NULL,

CONSTRAINT fk_brand

FOREIGN KEY (brand_id)

REFERENCES brands(brand_id) ON DELETE CASCADE

);

在这些表中,每个品牌有一个或更多的汽车,而每辆汽车只有一个品牌。

以下语句尝试删除brands表:

DROP TABLE brands;

Oracle发出以下错误:

ORA-02449: unique/primary keys in table referenced by foreign keys

这是因为brands表的主键当前由cars表中的brand_id列引用。

以下语句返回cars表的所有外键约束:

SELECT

a.table_name,

a.column_name,

a.constraint_name,

c.owner,

c.r_owner,

c_pk.table_name r_table_name,

c_pk.constraint_name r_pk

FROM

all_cons_columns a

JOIN all_constraints c ON

a.owner = c.owner

AND a.constraint_name = c.constraint_name

JOIN all_constraints c_pk ON

c.r_owner = c_pk.owner

AND c.r_constraint_name = c_pk.constraint_name

WHERE

c.constraint_type = 'R'

AND a.table_name = 'CARS';

要删除brands表,必须使用CASCADE CONSTRAINTS子句,如下所示:

DROP TABLE brands CASCADE CONSTRAINTS;

这个语句不仅删除了brands表,而且还删除了cars表中的外键约束fk_brand。

如果再次执行语句以获取cars表中的外键约束,则不会看到任何返回的行。

Oracle DROP TABLE PURGE示例

以下语句使用PURGE子句来删除cars表:

DROP TABLE cars purge;

一次删除多个表

Oracle不提供直接删除多个表的方法。 但是,可以使用以下PL/SQL块来执行此操作:

BEGIN

FOR rec IN

(

SELECT

table_name

FROM

all_tables

WHERE

table_name LIKE 'TEST_%'

)

LOOP

EXECUTE immediate 'DROP TABLE '||rec.table_name || ' CASCADE CONSTRAINTS'

END LOOP;

END;

/

该PL/SQL块将删除名称以TEST_开头的所有表。

要测试此代码,可以先创建三个表:test_1,test_2和test_3,如下所示:

CREATE TABLE test_1(c1 VARCHAR2(50));

CREATE TABLE test_2(c1 VARCHAR2(50));

CREATE TABLE test_3(c1 VARCHAR2(50));

然后,执行上面的PL/SQL块。应该看可以看到,上面创建的三个表均被删除了。

在本教程中,您已学习如何使用Oracle DROP TABLE语句从数据库中删除表。

oracle drop怎么用,Oracle Drop Table相关推荐

  1. oracle中drop和delete,oracle中delete drop truncate的用法和区别

    数据库的运维中,经常会遇到delete drop truncate的操作,那么如何去把握它们的用法和区别呢? 比如当数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G.你需要通过一些办法释放 ...

  2. Oracle 闪回特性(FLASHBACK DROP RECYCLEBIN)

    --============================================== -- Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN) --= ...

  3. oracle怎样删除关键字,SQL DROP CONSTRAINT 关键字

    SQL DROP CONSTRAINT 关键字 DROP CONSTRAINT DROP CONSTRAINT命令用于删除UNIQUE,PRIMARY KEY,FOREIGN KEY或CHECK约束. ...

  4. oracle强制drop用户,强制Oracle Drop全局临时表

    在我们的项目中,我创建了一些全局临时表,如下所示: CREATE GLOBAL TEMPORARY TABLE v2dtemp ( id NUMBER, GOOD_TYPE_GROUP VARCHAR ...

  5. oracle full table scan,ORACLE优化之执行规划(1) - TABLE FULL SCAN/INDEX FULL SCAN

    ORACLE优化之执行规划(1) - TABLE FULL SCAN/INDEX FULL SCAN TABLE FULL SCAN 全表扫描,表示表中所有记录都被访问到.如果表很大, 该操作对查询性 ...

  6. oracle表还原truncate,Oracle数据库执行truncate table操作后如何逆向恢复之前的状态...

    概述:北京某国企客户 Oracle 11g R2 数据库误truncate table CM_CHECK_ITEM_HIS,表数据丢失,业务查询到该表时报错,此时发现数据库的备份不能用,表数据无法查询 ...

  7. oracle imp导入时出现skipping table

    最近有同事在使用传统的imp工具导入数据时,总是提示收到skipping table的提示,也就是表被跳过,而不是被重建.即使是将目标数据库上的表对象删除,仍然无法导入.因此记录一下,供大家参考. 1 ...

  8. oracle更改密码机制,Oracle密码机制以及常用操作

    Oracle 默认有3个用户: sys 密码:自定:system 密码:自定 :scott 密码:Tiger(默认锁定):注:用Sys用户登录须根 [as sysdba Oracle 默认有3个用户: ...

  9. oracle+cast函数+长度,oracle cast() 函数问题

    oracle cast() 函数问题 关键字: oracle cast() 函数问题 SQL> create table t1(a varchar(10)); Table created. SQ ...

  10. oracle数据定义语句,oracle(sql)基础篇系列(3)——数据维护语句、数据定义语句、伪列...

    oracle(sql)基础篇系列(三)--数据维护语句.数据定义语句.伪列 DML语句 insert 向表中插入新的记录 --三种插入方式 --(1)不写字段的名字,直接按照字段的顺序把值逐个往里插 ...

最新文章

  1. 设计模式学习1:设计模式简述和设计模式原则
  2. AI 一分钟 | 南京大学成立人工智能研究院;三星关联实体已收购 AI 搜索引擎创业公司Kngine的全部股份
  3. 单词个数统计上机实验
  4. oracle 11g 11.2.0.1 设置HuagePage导致TRC 变大 变多
  5. 计算机网络安全六要素,六要素教学在计算机网络教学中的探索与反思
  6. python opencv实现目标区域裁剪
  7. Keras笔记(一)关于Keras模型
  8. android 查询wifi信息的类,Android 获取wifi信息
  9. dataframe里面数据截取的规律
  10. VBA自定义方法 快捷键设置
  11. learn from 德国老师
  12. 国际信用卡VISA/MasterCard/AE/DC/JCB 卡号结构
  13. 2021最新Android常用开源库总结,最强技术实现
  14. 分类---逻辑回归(二分类)
  15. JavaWeb-简析MVC三层架构
  16. 网站本地化翻译,英文日文俄文互译
  17. 数据结构作业9(清览题库)
  18. 青岛啤酒与德国啤酒:纯爽背后的渊源与秘密
  19. TeamSpeak3服务器搭建
  20. uniapp app蓝牙打印_给编程器加装蓝牙串口模块,用手机APP操作打印信息进控制台...

热门文章

  1. a113 智能音箱芯片方案_智能音箱九大芯片方案商及其生产厂商和代表作品介绍...
  2. Fake Location(安卓)
  3. 【甄选靶场】Vulnhub百个项目渗透——项目十:stapler-1(文件上传,多方式提权)
  4. 时空大数据面临的挑战与机遇
  5. 计算机WORD列宽行高怎么设置,word2010表格列宽和行高怎么设置
  6. 如何在计算机中增加字体,电脑如何添加字体?WinXP系统新增个性字体的方法
  7. Android 获取日历日程事件
  8. Unity 使用AVProVideo插件加载并下载视频
  9. 【考试】二阶段2201班考试答案(做错一概不负责)
  10. OSChina 周五乱弹 —— 美团外卖程序崩溃的真相