• 1
  • 0
分享

数据库中的delete 与drop的区别, 从下面的例子开始:

 delete :  delete from 表名  where 条件

 drop  :  alter table  表名  drop 字段

               drop table  表

有的同学从从上面的例子,可以看出来,  delete  删除的是 数据,drop删除的是  表;

这个没错,  但是, delete  和 drop 还有其他的区别,如下:

delete:

1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。

2、delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。

3、delete语句不影响表所占用的extent,高水线(high watermark)保持原位置不变。

drop:

1、drop是DDL,会隐式提交,所以,不能回滚,不会触发触发器。

2、drop语句删除表结构及所有数据,并将表所占用的空间全部释放。

3、drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保留,但是变为invalid状态。

所以:

1、在速度上,一般来说,drop> delete。

2、在使用drop时一定要注意,虽然可以恢复,但为了减少麻烦,还是要慎重。

3、如果想删除部分数据用delete,注意带上where子句,回滚段要足够大;如果和事务有关,或者想触发trigger,还是用delete

4、如果想删除表,当然用drop;

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • Docker ComposeCompose 简介Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。最后,执行 docker-compose up 命令来启动并运行整个应用程序。Compose 安装LinuxLinux 上我们可以从 Github 上下载它...
            11 11 5860
            分享
          •   在当今竞争激烈的软件开发领域,确保产品质量和交付速度的平衡至关重要。软件测试已成为驱动成功项目的关键因素之一。为了有效评估测试过程的效率和成果,关键绩效指标 (KPIs) 提供了一个量化的工具,不仅帮助团队确保产品质量,还能及时识别和应对潜在风险。  本文我们将探讨如何合理应用这些KPIs,以确保您的开发项目始终保持在预期轨道上,并通过实际案例展示其在提升产品竞争力方面的作用。  关键绩效指标 (KPIs) 概述  在软件测试过程中,有许多 KPIs 可用于评估测试的成功与否。为了简洁起见,我们挑选了其中最为关键的几个:  KPI 1: 需求测试覆盖率 (Requirements Test...
            0 0 614
            分享
          • 一、前言说到底,你真的会造火箭吗?常说面试造火箭,入职拧螺丝。但你真的有造火箭的本事吗,大部分都是不敢承认自己的知识盲区和技术瓶颈以及经验不足的自嘲。面试时:我希望你懂数据结构,因为这样的你在使用HashMap、ArrayList、LinkedList,更加得心应手。我希望你懂散列算法,因为这样的你在设计路由时,会有很多选择;除法散列法、平方散列法、斐波那契(Fibonacci)散列法等。我希望你懂开源代码,因为这样的你在遇到问题时,可以快速定位,还可能创造出一些系统服务的中间件,来更好的解耦系统。我希望你懂设计模式,因为这样的你可以写出可扩展、易维护的程序,让整个团队都能向更好的方向发展。所...
            14 15 1925
            分享
          • 看到这个标题,是不是感觉有点牵强,「增长黑客」和「软件测试」怎么能扯上关系?嗯嗯,那我姑且算是蹭一波「增长黑客」的流量吧,但是等文章看完,希望能改变你的看法。最近正在看范冰大神的《增长黑客》,真是感触颇多,但是严格来说,这本书主要写给产品、运营、增长官以及对增长感兴趣的人,我属于最后一类对增长感兴趣的人,但我的主业仍然是做测试。 于是我结合目前项目的测试情况和书中的关键点做了下关联,想到了如下两个可以借鉴的地方,各位看看是否真的牵强吧。 第一点,需求合理性测试。 《增长黑客》这本书第二章的标题是「创造正确的产品」,在增长黑客最主要的 AARRR 模型中,并没有这个步骤的,但是范冰大神把它...
            1 3 1340
            分享
          • 一、Jmeter简介Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。Jmeter具备高移植性,可以实现跨平台运行。Jmeter可以实现分布式负载。Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。Jmeter具有较高扩展性。二、Jmeter安装安装JDK,必须JDK1.7以上的版本,推荐1.8的版本;进入官网:http://jmeter.apache.org/download_jmeter.cgi 下载最新的Jmeter版本,下载后解压到非中文目录,如:D:\;配置Jmeter的环境变量;(1)&nb...
            0 0 1253
            分享
      • 51testing软件测试圈微信