delete 和 truncate 和 drop的区别

本文主要介绍了MySQL数据库中delete、truncate和drop的区别。delete只删除数据,不删除自增主键,可回滚,不减少表和索引空间;truncate删除数据,可删自增主键,不可回滚,表和索引空间恢复初始大小;drop删除数据和表结构,不可回滚,释放表全部空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql数据库中delete/truncate/drop的区别

1.delete

只删除数据 -> 不能去掉自增主键 -> 且可以回滚 -> 但是必须和事务相关(即要想回滚数据必须开启事务) 不会减少表和索引所占用的空间大小

eg:事务
select * from ordertotals;
start transaction;
delete from ordertotals;
select * from ordertotals;
rollback;
select * from ordertotals;

delete 操作之索引可以回滚是因为它会将操作作为事务案子日志中保存,以便回滚

2.truncate 删除数据 -> 可以删除自增主键 -> 删除的数据不能回滚 -> 表和索引所占用的空间会恢复到初始大小

3.drop 删除数据和表的结构 不能回滚 删除表所占的全部空间

4.参考原文 https://www.cnblogs.com/zhizhao/p/7825469.html

在这里插入图片描述

欢迎关注小雨哥,我会不定期更新自己的技术总结,希望大家一起成长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值