清空表数据 可用的两种操作:
-
delete from 表名;
- truncate table 表名;
两者比较:
不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
博主在用delete from 进行删除时发现报错了,说时safe updae 模式什么的,后来查看其他小伙伴的博客,发现了解决办法:
只需执行 SET SQL_SAFE_UPDATES = 0; 即可。
关于SQL_SAFE_UPDATES 推荐阅读https://www.jianshu.com/p/401c3cb722f6
本文对比了MySQL中清空表数据的两种方法:DELETE与TRUNCATE。DELETE语句逐条删除记录,支持WHERE条件,可恢复;TRUNCATE则相当于重新创建表,速度快但不记录日志,数据不可恢复。文章还提供了解决SAFE_UPDATE模式下DELETE语句错误的方法。

6328

被折叠的 条评论
为什么被折叠?



