MySQL - Delete 和 Truncate 的区别

news/2024/11/24 12:36:26/

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 的, 会继续从上一个自增量开始 (存在文件中的, 不会丢失)

http://www.ppmy.cn/news/703558.html

相关文章

sftp上传文件失败解决

同事求助,说他用sftp上传文件失败。 首先想到的是权限问题。于是登陆服务器,cd到上传目录,ls -l看上去没问题。 测试一下吧,用我自己的帐号sftp登陆,随便传一个文件,成功了。 哈,问题范围缩减…

SFTP向服务器上传文件失败问题的解决办法

FileZilla和XShell都可以通过FTP传输文件。 FileZilla连接上服务器后,可以下载文件,但是不能上传,传输会有提示:“无法启动传输”。 这个问题一般情况有如下三个原因: 1、文件夹权限不够,修改之&#xff…

网易邮箱发送失败的原因

1.设置故障,再网易的web界面开启pop3、imap协议即可 一般出现再刚下载还未设置 2.免费信箱故障 解决方法:给自己发邮件,如果没有受到,则免费信箱有问题,去手机店处理即可 3.对方线路问题 测试方法:让一个朋…

smtp 发送邮件(qq邮箱)失败

项目用的框架是 ThinkPHP,在本地WAMP环境下使用了QQ邮箱的 smtp 邮件系统 本地测试成功的情况下,部署到服务器上无法发送邮件,报错:500 解决方法 最终发现是端口号的原因,QQ邮箱的 smtp 服务端口号为 465 或 587&#…

关于发送邮件时上传附件的问题

最近在做邮件列表的项目时发现一个问题,虽然不是什么大问题,但是稍不注意就会出现问题:因为我做的是B/S和C/S得两个版本,客户端程序使用Jmail组件来发送邮件,直接发送,不写入数据库存档,当时jmM…

网易云邮箱发送邮件失败

原因:code: 41, domain: WMSVR Mail Error Domain, detail: , userInfo: {“errorRcpts”:[“FA_MTA_RCPT_ERROR”],“code”:“FA_MTA_MULTI_ERROR”} 发送邮件的时候提示以上错误,但是按照官方的邮件发送标准并没有违规,官网和其他地方也暂…

phpmailer通过QQ邮箱发送SMTP邮件失败

今天在测试邮件功能的时候,发现明明在本地发邮件功能可以正常使用的,但是放到了阿里云服务器上,就发送失败。报错信息如下:System.Net.WebException: 无法连接到远程服务器 —> System.Net.Sockets.SocketException: 由于连接方…

Foxmail 添加QQ邮箱失败 提示密码错误

今天使用Foxmail的时候一直弹出密码错误提示框,输入QQ密码和邮箱独立密码都不行。上网查资料得以解决,在此记录下以备之后再次遇到这个问题。 首先查看邮箱的POP3/SMTP服务是否开启 在网页端登录QQ,在 设置 -> 账户 -> POP3/IMAP/SMTP…