前几天在群中见到有人问drop table和truncate table之间有什么区别,三思是这样回答的:就像吃鸡和吃鸡蛋的区别一样~
鸡蛋吃掉了没关系,只要鸡还在,蛋就还有再下的可能,不过如果鸡被吃掉了,那就连鸡带蛋都没啦~~
对应到drop table和truncate table也是这样理解。
truncate table就像是吃蛋,数据是没了,但表还在,只要你愿意,还可以再往里填数据。
drop table就像吃鸡,不仅数据没了,连表都没了。
truncate做的修改是不能回滚的,就是不可恢复的操作。用了这个命令后就收回了表空间。delete删除是要把数据写入系统回滚段中以便恢复时使用。
网站地址:
http://space.itpub.net/7607759/viewspace-524741
http://gaijing814.iteye.com/blog/403243
http://www.blogjava.net/parable-myth/archive/2008/09/04/226979.html
******************************************************下面加一点总结
delete还会触发delete触发器,当然如果有的话。
相关推荐
最后,如果你想完全删除表及其定义,应当使用 DROP TABLE 语句,而不是 TRUNCATE 或 DELETE,因为后者仅删除表中的数据,保留表结构。 综上所述,TRUNCATE TABLE 和 DELETE 在性能、资源消耗和行为特性上都有明显的...
### truncate, delete 以及 drop 区别汇总 #### 一、概述 在数据库管理中,经常需要对数据表进行各种操作,比如删除表中的数据、删除整个表等。`truncate`, `delete` 和 `drop` 是三种常见的 SQL 命令,它们在功能...
在SQL语言中,`TRUNCATE`、`DELETE` 和 `DROP` 是三个非常重要的数据操作语句,它们各自有着不同的用途和特性。理解这些差异对于数据库管理至关重要,特别是对于数据安全性和性能优化方面。 首先,`TRUNCATE` 语句...
### 数据库中truncate、delete与drop语句的深入解析 #### 一、基本概念与应用场景 在数据库管理中,`truncate`、`delete`与`drop`是三种常见的SQL语句,它们各自拥有不同的功能与用途,对于初学者来说,区分这三种...
`TRUNCATE TABLE` 是 SQL 语言中一种用于删除表中所有数据的命令,但它与 `DELETE` 语句有着显著的区别。这篇文章将深入讲解 `TRUNCATE TABLE` 的使用方法,以及它与 `DELETE` 的对比,同时涵盖权限、适用场景及注意...
然而,Oracle不支持直接为用户授予针对单个表的`TRUNCATE`权限,而是通常将更广泛的`DROP ANY TABLE`权限赋予用户,但这可能会带来安全隐患。本文将探讨两种实现为用户授权`TRUNCATE TABLE`的方案,以确保安全性和可...
与 `DELETE` 语句不同,`TRUNCATE TABLE` 不会逐行删除数据,而是直接移除整个表的数据段,因此在处理大量数据时,它的执行速度更快且更高效。 当你需要清空一张表,而又不想破坏表的定义或索引等元数据时,`...
本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下 ---创建表Table1 IF OBJECT_ID('Table1','U') IS NOT NULL DROP TABLE Table1 GO CREATE TABLE Table1 (ID INT NOT NULL,...
### delete,truncate和drop的区别详解 #### 一、概述 在数据库管理中,经常会遇到需要删除数据或表的情况。为了确保数据的准确性和安全性,理解`delete`、`truncate`和`drop`这三个命令的区别至关重要。本文将详细...
- `DELETE` 权限通常授予用户对单个记录的删除能力,而 `TRUNCATE TABLE` 需要有更高的权限,比如 `DROP` 权限,因为它涉及到表结构的修改。 - 因此,在设置用户权限时,需要注意区分这两种操作,以防止用户不小心...
本文主要讲mysql中三种删除表的操作,delete语句、truncate语句以及drop语句的区别: 简介 delete 1、删除整张表的数据: delete from table_name; 2、删除部分数据,添加where子句: delete from table_name ...
为了应对这类问题,可以通过创建Oracle系统触发器来实现对`DROP TABLE`和`TRUNCATE TABLE`命令的监控与阻止。以下详细介绍两种不同的Oracle版本(10g和8i)下如何创建相应的系统触发器。 ### Oracle 10g环境下的...
在SQL中,删除数据有三种主要方式:DROP、TRUNCATE和DELETE。这些语句各自有不同的特性和适用场景,理解它们的区别对于有效地管理和维护数据库至关重要。 1. **DROP语句**: - DROP TABLE语句用于彻底删除一个表...
TRUNCATETABLE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 (2)表和索引所占空间。 当表被TRUNCATE...
前言 上周同事小姐姐问我:“哈哥你看,我发现...咱们常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除;这三种都可以用来删除数据,但场景不同。 一、从执行速度上来说 drop > truncate >> DELETE 二
例如,删除所有记录不保留记录占用空间:Truncate table users drop storage; 删除所有记录保留记录占用空间:Truncate table users reuse storage; 三、两种删除语句的对比 Delete 语句和 Truncate 语句都可以...
TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。下面介绍SQL中Truncate的用法 当你不再需要该表时, 用 drop;当你仍要保留该表,但要...