mysql5.1中delete和truncate的区别,实例如下

create table test_del(id int auto_increment,name varchar(10),primary key(id));
insert into test_del(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘);
create table test_truc(id int auto_increment,name varchar(10),primary key(id));
insert into test_truc(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘);
mysql> select * from test_del;
+----+-------+
| id | name  |
+----+-------+
|  1 | xuhao |
|  2 | fdsa  |
|  3 | fddsf |
+----+-------+
3 rows in set

mysql>  select * from test_truc;
+----+-------+
| id | name  |
+----+-------+
|  1 | xuhao |
|  2 | fdsa  |
|  3 | fddsf |
+----+-------+
3 rows in set

mysql> delete from test_del;
Query OK, 3 rows affected

mysql> delete from test_truc where true;
Query OK, 3 rows affected

mysql> insert into test_del(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘);
Query OK, 3 rows affected
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into test_truc(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘);
Query OK, 3 rows affected
Records: 3  Duplicates: 0  Warnings: 0

mysql>  select * from test_del;
+----+-------+
| id | name  |
+----+-------+
|  4 | xuhao |
|  5 | fdsa  |
|  6 | fddsf |
+----+-------+
3 rows in set

mysql>  select * from test_truc;
+----+-------+
| id | name  |
+----+-------+
|  4 | xuhao |
|  5 | fdsa  |
|  6 | fddsf |
+----+-------+
3 rows in set

mysql> truncate test_truc;
Query OK, 0 rows affected

mysql> insert into test_truc(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘);
Query OK, 3 rows affected
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from test_truc;
+----+-------+
| id | name  |
+----+-------+
|  1 | xuhao |
|  2 | fdsa  |
|  3 | fddsf |
+----+-------+
3 rows in set

对于表中的自增id,delete和truncate的处理方式是不同,另外据说delete操作会写入日志,truncate不写入日志,言下之意,truncate慎用,不易恢复。

时间: 2024-10-09 06:25:20

mysql5.1中delete和truncate的区别,实例如下的相关文章

oracle中delete、truncate、drop的区别

oracle中delete.truncate.drop的区别 标签: deleteoracletable存储 2012-05-23 15:12 7674人阅读 评论(0) 收藏 举报  分类: oracle(2)  版权声明:本文为博主原创文章,未经博主允许不得转载. 一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(c

3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入

 1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date definition Language) 数据库定义语言 create table;create view index sequence synonvm同义词,truncate table DCL语言 (Data control Language) 数据控制语言 commit rollback s

oracle中delete drop truncate的用法和区别

数据库的运维中,经常会遇到delete drop truncate的操作,那么如何去把握它们的用法和区别呢? 比如当数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G.你需要通过一些办法释放掉表空间或者扩容表空间来解决问题. 一般当系统中大量使用分区表,而针对分区表清除数据,是不会释放表空间的,必须把分区drop掉,才会释放空间. 下面我们具体了解一下这三个命令: 一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在r

Mysql中DELETE,TRUNCATE,DROP的区别

1. delete:    delete from table_name;          or         delete from table_name where column = ?; 删除表中数据,但是不会删除表结构,删除的时候是一行一行删,效率较低,可用来删除单条数据. 2. truncate: truncate from table_name; 删除表中数据,不删除表结构,相比于delete,效率更高,它所使用的系统和事物日志资源少. //对于delete与truncate,最

oracle中drop、delete和truncate的区别

oracle中可以使用drop.delete和truncate三个命令来删除数据库中的表, 1. delete和truncate都是删除表中的内容而不能删除表的结构,而drop则是删除表的结构和内容(表将不复存在): 2. delete可以删除整个表的数据也可以有选择性地删除某一条或多条数据,而truncate则是一次性删除整个表的数据: 3. 使用delete删除的表数据并没有真正被删掉,数据占用的表空间还存在,相当于Windows中将数据删除到回收站中,日后有需要还可以恢复: 4. 使用tr

mysql中delete和truncate区别

delete和truncate区别如下: 一.灵活性:delete可以条件删除数据,而truncate只能删除表的所有数据: delete from table_test where ... truncate table table_test 二.效率:delete效率低于truncate,delete是一行一行地删除,truncate会重建表结构, 三.事务:truncate是DDL语句,需要drop权限,因此会隐式提交,不能够rollback:delete是DML语句,可以使用rollbac

MySQL删除表数据:DELETE 与 TRUNCATE 的区别

在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句.DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法: DELETE FROM  tb_mail TRUNCATE TABLE tb_mail 其中第二条记录中的TABLE是可选的. 如果要删除表中的部分记录,只能使用DELETE语句. DELETE F

C#中委托和事件的区别实例解析

这篇文章主要介绍了C#中委托和事件的区别,并分别以实例形式展示了通过委托执行方法与通过事件执行方法,以及相关的执行流程与原理分析,需要的朋友可以参考下 本文实例分析了C#中委托和事件的区别,分享给大家供大家参考之用.具体如下: 大致来说,委托是一个类,该类内部维护着一个字段,指向一个方法.事件可以被看作一个委托类型的变量,通过事件注册.取消多个委托或方法.本篇分别通过委托和事件执行多个方法,从中体会两者的区别. 一.通过委托执行方法 1 2 3 4 5 6 7 8 9 10 11 12 13 1

详解Oracle中 DELETE、TRUNCATE 和 DROP 的区别

前言 以前做项目的时候,很少关注知识点中比较细节的东西,正好今天有这个机会,就把 Oracle 中几个常用的函数区分一下. 语法 delete from table_name truncate table table_name drop table table_name 区别 delete from后面可以写条件,truncate不可以,drop后边一般也不写条件. delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日志里面只记录页释放,