`
dove19900520
  • 浏览: 598096 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql中的delete和truncate

阅读更多

在MySQL数据库中,DELETE语句和TRUNCATE TABLE语句都可以用来删除数据,但是这两种语句还是有着其区别的,下文就为您介绍这二者的差别所在空mysqll表内容常见的有两种方法:一种delete,一种是truncate 。 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。

 

一、truncate的语法结构为:

TRUNCATE [TABLE] tbl_name 

 下面给出一个简单的小示例:

 我想删除 test表中所有的记录,可以使用如下语句:

truncate table test;

 

 二、delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

其语法结构是:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name 

[WHERE where_definition] 

[ORDER BY ...] 

[LIMIT row_count] 

 

按照上面的语法结构,我想删除 test表中所有 infoId等于abced的记录,
就可以使用如下SQL语句:

delete from test where infoId = 'abced';

 

注意事项:

从语法结构中,我们可以看出,和update语法一样,我们是可以省略where子句的。不过,这是一个很危险的行为。因为如果不指定where子句,delete将删除表中所有的记录,而且是立即删除,即使你想哭都没地方,也没时间,因为你需要马上和主管承认错误,并且立即找出mysql日志,来回滚记录。

总结

不过truncate命令快规快,却不像delete命令那样对事务处理是安全的。因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。

分享到:
评论

相关推荐

    MySQL—delete和truncate的区别

    在MySQL数据库管理中,删除数据的操作主要有两种方式:`DELETE` 和 `TRUNCATE`。它们虽然都能实现数据的删除,但在使用场景、性能和效果上有着显著的区别。以下是关于这两种操作的详细解释: 1. **`DELETE` 命令** ...

    mysql 删除操作(delete+TRUNCATE)

    MySQL中的删除操作主要涉及到两种方式:DELETE和TRUNCATE,它们在不同的场景下有不同的优势和用途。下面将详细解析这两种方法以及它们的使用细节。 1. DELETE语句: DELETE语句是最常用的删除数据的方式,它允许...

    MySQL删除表操作实现(delete、truncate、drop的区别)

    本文主要讲mysql中三种删除表的操作,delete语句、truncate语句以及drop语句的区别: 简介 delete 1、删除整张表的数据: delete from table_name; 2、删除部分数据,添加where子句: delete from table_name ...

    MySQL删除数据Delete与Truncate语句使用比较

    在MySQL数据库中,删除数据的操作主要由两种语句来完成,即`DELETE`和`TRUNCATE TABLE`。虽然两者都能达到删除数据的目的,但它们在执行机制、效率、回滚机制以及与事务的关系等方面存在显著差异。 1. **执行机制**...

    详解SQL中drop、delete和truncate的异同

    在SQL中,`DROP`、`DELETE`和`TRUNCATE`都是用于处理表中数据的命令,但它们之间存在显著的区别。以下是这些命令的详细解释: 1. **相同点**: - 三者都能删除表内的数据。 - `TRUNCATE`和不带`WHERE`子句的`...

    最新JAVA面试题总结之数据库.docx

    1. MySQL 中 delete 和 truncate 的区别: delete 语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作记录在日志中,以便进行回滚操作,不清空 AUTO_INCREMENT 记录数;truncate 则直接将表删除并...

    国家开放大学 MySQL数据库应用 实验训练3 数据增删改操作

    实验中,学生将学习使用 Insert 语句进行数据插入、Delete 语句删除数据、TRUNCATE TABLE 语句清空表数据、Update 语句修改数据。 1. 数据插入操作 在实验中,学生将学习使用 Insert 语句插入数据,包括单记录插入...

    MySQL中truncate误操作后的数据恢复案例

    实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入。 这里为了简单说明,只拿弄一个简单的业务场景举例。 测试环境: Percona-...

    mysql delete 多表连接删除功能

    MySQL中的`DELETE`语句是用于从数据库中删除数据行的关键命令。在处理单个表时,`DELETE`语句的使用相对简单,而在多表环境中进行连接删除时,其复杂性和潜在影响则显著增加。这里我们将深入探讨`DELETE`语句的各种...

    delete、truncate、drop的区别以及该如何选择

    “怪不得,其实要删除MySQL数据是有好几种方式的,有些场景下是不应该用DELETE的,比如你这种情况。好了,让我来给你讲一下吧。” MySQL删除数据的方式都有哪些? 咱们常用的三种删除方式:通过 delete、truncate、...

    详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始

    在MySQL数据库管理中,删除数据是一项常见的操作,但有三种不同的方法可以实现这一目标:DROP、TRUNCATE和DELETE。理解它们之间的区别至关重要,因为它们各自具有不同的特性和使用场景。 1. **DROP命令**: - DROP...

    MySQL防止delete命令删除数据的两种方法

    方法一我常用的做法,就是在数据库中加一个删除标识字段,如: isdel=1 这样就代码... 您可能感兴趣的文章:mysql之delete删除记录后数据库大小不变mysql 删除操作(delete+TRUNCATE)mysql支持跨表delete删除多表记录MyS

    浅析删除表的几种方法(delete、drop、truncate)

    您可能感兴趣的文章:数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)drop,truncate与delete的区别详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始浅析drop user与delete from ...

    MySQL Truncate用法详解

    MySQL Truncate命令是一种用于清空表中所有数据的数据库操作,它是数据定义语言(DDL)的一部分,而不是数据操纵语言(DML)。与Delete语句不同,Truncate在删除数据时跳过了记录删除的过程,因此执行速度更快,但...

    MySQL:删除数据库的实用命令中

    MySQL 中有三个实用的命令可以帮助开发人员便捷地删除数据库或表格中的数据,他们分别是 DROP、DELETE 和 TRUNCATE 命令,这些命令可以根据需要,灵活地完成删除数据库或表格内容操作。 在实际开发中,需要根据不同...

Global site tag (gtag.js) - Google Analytics