MySQL流浪记(七)—— MySQL删除表数据
刪除全表數據:
??delete from [表名]:會生成日志
??truncate table [表名]:不會生成日志
刪除表中部分數據
??delete from [表名] where … :刪除表中的部分數據只能使用delete + where 不能使用truncate。
區別
??從效果上看,不加where的delete和truncate一樣,但是delete可以返回被刪除的行數,而truncate只返回0。如果表中有自增字段,使用delete刪除后再插入數據,自增字段會接著之前的數據繼續自增,而使用truncate刪除后再插入數據,自增字段會從0開始。
??delete和truncate的主要的區別就是delete可以通過where刪除指定的數據。但是執行的速度不快,并且可以返回影響的行數,而truncate無法刪除指定的數據,并且也不能返回影響的行數,但是truncate的執行速度非常快。
??truncate刪除數據后不記錄mysql日志,并且不可以回復數據。delete的像是將表中的數據一條一條的刪完,而truncate相當于重新建了一個相同表結構的表,直接將之前的表中的數據刪除,所有的狀態都相當于是一個新表。
??如果是想要刪除表中所有的數據,推薦使用truncate table [表名],執行速度快,如果是刪除部分指定數據,推薦使用delete from [表名] where … order by … desc/acs limit (一般不推薦使用order by這種外排在sql中,優先使用limit offset, count)
總結
以上是生活随笔為你收集整理的MySQL流浪记(七)—— MySQL删除表数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【每日SQL打卡】DAY 1丨部门工资最
- 下一篇: Animation Property