mysql删除表数据(drop、truncate和delete)

在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。
1、drop table tb
drop将表格直接删除,没有办法找回
2、truncate (table) tb
删除表中的所有数据,不能与where一起使用
3、delete from tb (where)
删除表中的数据(可根据where删除特定某些行)

区别:truncate和delete的区别
1、事务:truncate删除后不记录mysql日志,不可以恢复数据,是不可以rollback的,truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。delete的效果有点像将mysql表中所有记录一条一条删除到删完,delete是可以rollback的;
原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
2、效果:效率上truncate比delete快,truncate删除后将重建索引(id从零开始) ,delete不会删除索引
3、 truncate 不能触发任何Delete触发器。
4、DELETE可以返回被删除的记录数,而TRUNCATE TABLE返回的是0

猜你喜欢

转载自blog.csdn.net/strggle_bin/article/details/78318305
今日推荐