首页 数据库 mysql教程 drop,truncate与delete的区别

drop,truncate与delete的区别

Jun 07, 2016 pm 05:59 PM
delete drop truncate

这里说的delete是指不带where子句的delete语句

注意:这里说的delete是指不带where子句的delete语句
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据

不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop>; truncate >; delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据

通俗的讲:

在实际应用中,三者的区别是明确的。
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERE clause), 用 delete.
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1268
29
C# 教程
1241
24
键盘删除键是哪个 键盘删除键是哪个 Mar 16, 2023 pm 04:48 PM

键盘删除键有两个:del(delete)键和backspace键。backspace又称退格键,这个按键可以把光标前面的文本内容删除掉;而delete键可以删除字符、文件和选中对象。每按一次del键,就会删除光标右侧的一个字符,光标右侧的字符向左移动一帧;当选中一个或多个文件/文件夹时,按Del键可快速删除;在某些应用程序中选中某个对象,按Del键可快速删除选中对象。

delete键有什么功能 delete键有什么功能 Mar 10, 2023 pm 06:07 PM

delete键的功能为:1、删除字符;每按一次delete键,就会删除光标右侧的一个字符,光标右侧的字符向左移动一帧。2、删除文件;当选中一个或多个文件/文件夹时,按Delete键快速删除(移动到回收站,可恢复)。3、删除选中对象;在某些应用程序中选中某个对象,按Delete键可快速删除选中对象。

uniapp中如何实现拖拽排序和拖拽操作 uniapp中如何实现拖拽排序和拖拽操作 Oct 19, 2023 am 09:39 AM

Uniapp是一款跨平台的开发框架,其强大的跨端能力使得开发者可以快速方便地开发出各种应用。在Uniapp中实现拖拽排序和拖拽操作也是非常简单的,并且可以支持多种组件和元素的拖拽操作。本文将介绍如何使用Uniapp实现拖拽排序和拖拽操作,并提供具体的代码示例。拖拽排序功能在很多应用中都非常常见,例如可以用于实现列表的拖拽排序,图标的拖拽排序等。下面我们以列表

如何控制   Alt   删除:Mac 教程 如何控制 Alt 删除:Mac 教程 Apr 16, 2023 pm 12:37 PM

Control Alt Delete:“Mac”方式Ctrlaltdel是Windows用户用来打开“任务管理器”的常用组合键。他们通常会从管理器菜单中退出不需要的应用程序,以释放计算机上的一些空间。Control Alt DeleteMac变体可让您打开“强制退出”菜单。如果Mac用户想要退出导致问题的程序或查看打开的程序,他们可以与菜单交互以进一步调查。如何在Mac上执行ControlAltDelete?如果您有任何出现故障的应用程序,您必须使用此组合键来摆

Can't drop database 'database_name'; database doesn't exist - 如何解决MySQL报错:无法删除数据库,数据库不存在 Can't drop database 'database_name'; database doesn't exist - 如何解决MySQL报错:无法删除数据库,数据库不存在 Oct 05, 2023 am 11:46 AM

如何解决MySQL报错:无法删除数据库,数据库不存在概述:MySQL是一种常用的关系型数据库管理系统。在使用MySQL中,我们经常需要对数据库进行管理,包括创建数据库、删除数据库等操作。然而,在删除数据库时,有时候会遇到报错提示"Can'tdropdatabase'database_name';databasedoesn'texist",即无法删

交易 | Tesla Model 3 Long Range AWD 重新获得全额 7,500 美元税收优惠,降至 40,000 美元以下 交易 | Tesla Model 3 Long Range AWD 重新获得全额 7,500 美元税收优惠,降至 40,000 美元以下 Jun 19, 2024 am 09:55 AM

去年年底,特斯拉推出 Model 3 Highland 更新后不久,美国联邦电动汽车税收激励规则发生了变化,由于特斯拉在新款 M 中使用了中国磷酸铁锂电池,合格买家的潜在折扣减少了一半。

delete删除的文件可以恢复吗 delete删除的文件可以恢复吗 Feb 24, 2023 pm 03:49 PM

delete删除的文件可以恢复;因为当用户使用delete来删除文件,会将这些文件移入回收站,并没有完全删除。恢复方法:1、打开“回收站”,选中要恢复的文件,点击“还原此项目”即可;2、打开“回收站”,选中要恢复的文件,使用撤消快捷方式“ctrl+z”即可。

如何在jQuery中添加、编辑和删除表格行? 如何在jQuery中添加、编辑和删除表格行? Sep 05, 2023 pm 09:49 PM

在当今的Web开发时代,有效且高效的表管理变得非常重要,特别是在处理数据量大的Web应用程序时。从表中动态添加、编辑和删除行的能力可以显着增强用户体验并使应用程序更具交互性。实现这一目标的一种有效方法是利用jQuery的强大功能。jQuery提供了许多功能来帮助开发人员执行操作。表格行表格行是相互关联的数据的集合,由HTML中的元素表示。它用于将表格中的单元格(由元素表示)分组在一起。每个元素用于定义表中的一行,对于多属性表,通常包含一个或多个元素。语法$(selector).append(co

See all articles