欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > MySQL——Delete和Truncate语句详解

MySQL——Delete和Truncate语句详解

2024/10/23 23:22:27 来源:https://blog.csdn.net/chenyang_88/article/details/139925770  浏览:    关键词:MySQL——Delete和Truncate语句详解

delete 命令

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

-- 删除数据(避免这样写,会全部删除)
DELETE FROM `student` -- 删除指定数据
DELETE FROM `student` WHERE id = 7

TRUNCATE 命令

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

-- 清空 student 表
TRUNCATE `student`

delete和TRUNCATE的异同

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

·  不同点:TRUNCATE:重新设置自增列,计数器会归零。不会影响事务

代码演示:

-- 测试delete和TRUNCATE区别
CREATE TABLE `test`(`id` int(4) NOT NULL AUTO_INCREMENT,`coll` VARCHAR(20) NOT NULL,PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4INSERT INTO `test`(`coll`) VALUES ('1'),('2'),('3')DELETE FROM `test`  -- 不会影响自增TRUNCATE `test`  -- 自增会归零

了解即可:delete删除的问题,重启数据库后:

·  InnoDB引擎:自增列会从1开始(存在内存当中的,断电即失)

·  MyISAM引擎:继续从上一个自增量开始(存在文件当中,不会丢失)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com