操作mysql数据库 delete 怎么达到truncate的效果

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

Sql代码

TRUNCATE[TABLE]tbl_name

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

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

Sql代码

truncatetabletest;

本回答由提问者推荐

mysql中truncate是不是删除这个表的内容而表这个名称还在?

truncate是清除表里的所有数据,表名和字段都在。

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

1.truncate和不带where子句的delete、以及drop都会删除表内的数据。

2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。

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,再重新导入/插入数据。

6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。

7、TRUNCATETABLE在功能上与不带WHERE子句的DELETE语句相同:二者均删除表中的全部行。但TRUNCATETABLE比DELETE速度快,且使用的系统和事务日志资源少。DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATETABLE通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

8、TRUNCATETABLE删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用DELETE。如果要删除表定义及其数据,请使用DROPTABLE语句。

9、对于由FOREIGNKEY约束引用的表,不能使用TRUNCATETABLE,而应使用不带WHERE子句的DELETE语句。由于TRUNCATETABLE不记录在日志中,所以它不能激活触发器。

10、TRUNCATETABLE不能用于参与了索引视图的表。

mysql的truncate 命令和count 命令的返回值是不是应该相同的??

你数据库 可以看看吗 注意下面 2个删除语句的区别

TRUNCATE和DELETE有以下几点区别

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。

2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。

3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。

4、TRUNCATE不能触发任何DELETE触发器。

5、不能授予任何人清空他人的表的权限。

6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

7、不能清空父表。也许是的。

mysqltruncate函数相关推荐

  1. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  2. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  3. C++ 笔记(34)— C++ exit 函数

    当遇到 main 函数中的 return 语句时,C++ 程序将停止执行.但其他函数结束时,程序并不会停止.程序的控制将返回到函数调用之后的位置.然而,有时候会出现一些非常少见的情况,使得程序有必要在 ...

  4. C++ 笔记(30)— 友元函数与友元类

    我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...

  5. 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )

    1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...

  6. 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)

    编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...

  7. Go 学习笔记(65)— Go 中函数参数是传值还是传引用

    Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...

  8. Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法

    函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...

  9. C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明

    带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...

最新文章

  1. maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...
  2. 从封装函数到实现简易版自用jQuery (一)
  3. 32-第3章 数据链路层--抓包分析数据帧格式
  4. windowSoftInputMode属性详解
  5. RabbitMQ入门(五)-Topics(主题)
  6. 轻量级ORM《sqlcommon》第一个版本发布了
  7. mybatis_user_guide(5) 动态 SQL
  8. vue本地模拟数据之mockjs安装 - cmd篇
  9. win10java记事本运行_win10系统制作java文本的操作方法
  10. Oracle 宣布 Java EE 8 推迟到2017年年底发布
  11. 数仓 调度_【数仓开发-数仓概念篇】3.3 报表vs数据可视化vs ETL
  12. CorelDRAWX4的VBA插件开发(三十二)调用C++实现一键智能群组(第1节)成品演示以及逻辑和声明浅析
  13. java常用开发工具大合集
  14. c# oracle 中文列名,sql中中文列名
  15. linux认证ppt的图片,linux用户、组和身份认证-课件(PPT-精).ppt
  16. [实战] 实现抢票小工具短信通知提醒
  17. Vue实现 侧边固定定位图标 滑动隐藏
  18. SQL Server卸载不干净和重新安装问题
  19. 程序员如何增加收入?
  20. HTLM 零基础入门教程(详解)

热门文章

  1. acm竞赛技巧——c/c++ /java 快读快写(整数,字符串)
  2. 基于形态学运算的图像变换
  3. 博士申请 | 华盛顿州立大学Honghao Wei老师招收机器学习方向全奖博士生
  4. 破解Excel宏密码
  5. 蚂蚁区块链第18课 区块链预言机(ORACLE)的定义及在蚂蚁BAAS中的使用
  6. Python程序设计之 —— 简易学生信息管理系统
  7. 少三关羽鸿蒙配啥好,关公的造型、摆放位置都要好好斟酌
  8. WinFrom中TreeView中的应用
  9. openLayers中实现面要素立体化效果
  10. python 程序化交易信号闪烁_程序化交易模型在回测时的偷价行为和信号闪烁问题...