【狂神】MySQL - Delete 和 Truncate 的区别

2023-11-15

1. DELETE 命令

语法 : delete from 表名 [where 条件]

-- 删除数据 (避免这样写, 会全部删除)
DELETE FROM `student`;

-- 删除指定数据
DELETE FROM `student` WHERE id = 1;

2. TRUNCATE 命令

作用 : 完全清空一个数据库表, 表的结构和索引约束不会变.

-- 清空 student 表
TRUNCATE `student`;

3. DELETE 和 TRUNCATE 的区别

相同点 : 都能删除数据, 都不会删除表结构

不同点 : 

  • TRUNCATE  会重新设置自增列, 自增列计数器会归零
  • TRUNCATE 不会影响事务

测试数据 (测试自增列计数器归零区别) : 

CREATE TABLE `test`(
	`id` INT(4) NOT NULL AUTO_INCREMENT,
	`coll` VARCHAR(20) NOT NULL,
	PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `test`(`coll`) VALUE('1'),('2'),('3');

DELETE FROM `test`  -- 不会影响自增

TRUNCATE TABLE `test` -- 自增会归零

第三个区别 (了解即可)

DELETE 删除数据存在一些问题, 需要重启数据库(netstart), 观察现象 :

  • 对于数据库引擎是 InnoDB 的, 自增列会重新从 1 开始 (即数据存在内存中, 断电即失)
  • 对于数据库引擎是 MySWAM 的, 会继续从上一个自增量开始 (存在文件中的, 不会丢失)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【狂神】MySQL - Delete 和 Truncate 的区别 的相关文章

  • mysql语句中的*星号是什么意思?

    Ex mysql query SELECT FROM members WHERE id id 这意味着选择表中的所有列
  • 通过货币换算获取每种产品类型的最低价格

    我想选择每种产品类型中最便宜的 包括运费 价格转换为当地货币 最便宜 产品 价格 产品 运费 seller to aud 我的数据库有如下表 PRODUCTS SELLERS id type id seller id price shipp
  • C#:SQL 查询生成器类

    在哪里可以找到好的 SQL 查询构建器类 我只需要一个简单的类来构建 SQL 字符串 仅此而已 我需要它用于 C 和 MySql 我真的不需要像 Linq 或 NHibernate 这样的东西 谢谢 由于 Google 将我引导至此页面 我
  • 在docker中使用MySQL数据库设置aspnetcore

    我正在尝试设置一个 docker compose 文件 其中包含 asp net core mysql 数据库和 phpmyadmin 的容器 设置我的 mysql 服务器没有问题 我可以使用 phpmyadmin 访问它 我的 asp n
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • 单行的总和值?

    我有一个 MySQL 查询 它返回由一系列 1 和 0 组成的单行 它用于进度条指示器 我现在在代码中对它进行求和 但我尝试对查询中的值求和 并意识到我无法使用 SUM 因为它们有很多列 但只有一行 有没有办法可以在查询中自动求和 就像这样
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 为什么 MySQL 创建带有 _seq 后缀的表?

    我创建了一个 InnoDB 表 名为foo在 MySQL 中 一旦我对表执行插入操作 我就会看到另一个表foo seq被建造 如果我删除自动生成的表 它会在下一次插入后出现 是什么原因造成的 听起来像是正在创建一个序列 您是否有自动生成的主
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • 无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地 MySQL 服务器 (2)

    当我尝试连接 mysql 时出现以下错误 Can t connect to local MySQL server through socket var lib mysql mysql sock 2 这个错误有解决办法吗 其背后的原因可能是什
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • 映射 mysql 中同一个表的多个值

    您好 我必须使用另一个表中的值 id 获取文本值 表 1 包含值 ID 表 2 包含名称和值 ID 表 1 SEVERITY OCCURENCE DETECTABILITY 2 3 4 表 2 id name value 1 Very Hi

随机推荐

  • 免费获取JetBrains一年全家桶

    原文链接 https blog csdn net li5672 article details 110231645 登录Github Education 点击Get benefits 点击Get student benefits 下一步以后
  • CHL同步队列是什么

    CHL同步队列就是AQS内部维护的一个FIFO双向队列 AQS依赖这个双向队列来完成同步状态的管理 如果当前线程获取同步状态失败 AQS将会将当前线程以及等待状态信息构建成一个节点 Node 并将其加入到同步队列中 同时会阻塞当前线程 当同
  • linux 创建 svn 库

    cd data svn mkdir p itvalue chown R windmaker windmaker itvalue svnadmin create data svn itvalue cd itvalue cd conf vim
  • android studio中的CMakeLists.txt,就是如此简单

    android studio中的CMakeLists txt 就是如此简单 user Linvest 目录 1 cmake minimum required VERSION 3 4 1 2 add library native lib SH
  • RabbitMQ简介与安装

    技术对比 MQ 中文是消息队列 MessageQueue 字面来看就是存放消息的队列 也就是事件驱动架构中的Broker 比较常见的MQ实现 ActiveMQ RabbitMQ RocketMQ Kafka 几种常见MQ的对比 Rabbit
  • Android的ADB工具使用

    在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB ADB的全称为Android Debug Bridge 就是调试桥的作用 借助这个工具 我们可以管理设备或手机模拟器的状态 还可以进行以下的操作 1 快速更新设备或
  • react-antd中表格的使用(数据的请求,带删除功能的表格)

    前言 最近在学习react antd框架 表格这一块在项目中的使用频率很高 最近在学习这一块的内容 所以记录一下 基础表格请求数据 一般对于表格中的数据我们会进行请求 将请求到的数据存入表格中展示出来 当我们请求较少时可以这样写 const
  • AssetDatabase的方法

    静态函数 描述 AddObjectToAsset 添加对象到资产 AllowAutoRefresh 递减一个内部计数器 Unity使用它来决定是否允许自动的资产数据库刷新行为 AssetPathToGUID 获得资产的GUID ClearL
  • Unity 3D 资源下载

    Unity 3D 资源下载 你也可以在 Unity 3D 中执行 Window Asset Store 菜单命令直接访问 Unity 资源商店 Asset Store Unity 资源商店简介 Unity 资源商店https www ass
  • 为curl 、git、go语言、wget、repo设置代理,解决ubuntu 18.04编译chromium os问题

    为CURL设置proxy 设置代理的方式搜索了一下挺多的 我测试了这两种方式 这两种方式在ubuntu 18 04上可以运行 有两种方法 第一通过声明环境变量 export http proxy socks5h 127 0 0 1 1080
  • a 标签 onclick ( not a function)

    文章目录 说明 点击 download 点击 download1 说明 如图 download 在 body 下方声明 点击 download 则报错 download is not a function 点击 download1 则可以正
  • 【LeetCode刷题】

    菜鸡的LeetCode打怪记录 tips 本文涉及的一切内容仅本人学习使用 如不慎发生侵权行为 请滴滴我删除 谢谢 文章目录 菜鸡的LeetCode打怪记录 题目1480 Running Sum of 1d Array 思路 代码 评分结果
  • 合法ip算法实现——输入字符串,输出所有合法的ip

    输入为一串0 9之间的数字字符 不改变字符串中字符的前后顺序 输出所有合法的ip地址 IPV4下用一个32位无符号整数来表示一个ip地址 一般用点分方式来显示 点将ip地址分成4个部分 如 10 137 17 1 所以要输出所有合法ip 1
  • 2020暑假实习-百度前端一面&二面&三面

    2020暑假实习 百度前端一面 二面 三面 一面 算法题 JS实现二分搜索 随机打乱数组 HTML cookie localStorage sessionStorage区别 标签页之间的通信 cookie setInterval local
  • 合并升序链表系列(Java)

    LeetCode原题链接 21 合并两个有序链表 力扣 LeetCode 23 合并K个升序链表 力扣 LeetCode 目录 合并两个有序链表 题目表述 解法一 解法二 合并K个升序链表 题目描述 解法一 解法二 合并两个有序链表 题目表
  • 网络字节序与地址变换

    文章目录 1 主机字节序与网络字节序 2 字节序转换 Endian Conversions 1 主机字节序与网络字节序 CPU 向内存保存数据的方式有 2 2 2 种 这意味着 CPU 解析数据的方式也分为 2 2 2 种
  • unity3D-learnin:Priests and Devils

    阅读以下游戏脚本 Priests and Devils Priests and Devils is a puzzle game in which you will help the Priests and Devils to cross t
  • datagrip 查询结果不能修改

    正常情况下 查询出来的结果集都能直接修改 工具栏会出现 符号 且修改后会出现要提交的提示 向上的绿色箭头 且主键字段会有一把钥匙的标识 如图 凡事总有意外 今天发现库中的A表查询结果不能修改 但B表又是可以修改的 更奇怪的是直接双击A表 打
  • RTL8762DK PWM(七)

    概述 本示例 只要介绍 如何使用PWM 又离成功进了一步 一 环境 1 硬件 RTL8762DK 128M Bits Falsh 2 软件 keil IDE 二 PWM的使用 1 创建examples ble pwm工程 基于 exampl
  • 【狂神】MySQL - Delete 和 Truncate 的区别

    1 DELETE 命令 语法 delete from 表名 where 条件 删除数据 避免这样写 会全部删除 DELETE FROM student 删除指定数据 DELETE FROM student WHERE id 1 2 TRUN