如果想要刪除表的所有資料,truncate語句要比 delete 語句快。因為 truncate 刪除了表,然後根據表結構重新建立它,而 delete 刪除的是記錄,並沒有嘗試去修改表。
這也是為什麼當向乙個使用 delete 清空的表插入資料時,mysql 會記住前面產生的autoincrement序列,並且繼續利用它對autoincrement欄位編號。而truncate刪除表後,表是從1開始為autoincrement欄位編號。
不過truncate命令快規快,卻不像delete命令那樣對事務處理是安全的。因此,如果我們想要執行truncate刪除的表正在進行事務處理,這個命令就會產生退出並產生錯誤資訊。
如:delete [low_priority] [quick] [ignore] from tbl_name
[where where_definition]
[order by ...]
[limit row_count]
delete from friends where user_name = 'zhangsan';
如:truncate [table] tbl_name
truncate table users;
delete 刪除語句
delete 語句用於刪除表中的行。delete from 表名稱 where 列名稱 值 lastname firstname address city gates bill xuanwumen 10 beijing wilson fred zhongshan 23 nanjing fred wi...
MySQL防止delete命令刪除資料
在sql中刪除資料庫中記錄我們會使用到delete命令,這樣如果不小心給刪除了很難恢復了,總結一些刪除資料但是不在資料庫刪除的方法。方法一我常用的做法,就是在資料庫中加乙個刪除標識字段,如 isdel 1 這樣就 刪除的字段了 方法二直接限制mysql刪除 啟動mysql的時候加上引數 u u,sa...
MYSQL中delete多表關聯刪除資料
delete刪除多表資料,怎樣才能同時刪除多個關聯表的資料呢?這裡做了深入的解釋 1 delete from t1 where 條件 2 delete t1 from t1 where 條件 3 delete t1 from t1,t2 where 條件 4 delete t1,t2 from t1...