刪除數(shù)據(jù) delete、truncate 命令
1. delete 命令
命令格式
delete from 表名 [刪除條件];
刪除表中的所有數(shù)據(jù)
delete from 表名;
刪除表中符合匹配條件的數(shù)據(jù)
delete from 表名 刪除條件;
使用示例
-- 刪除 user 表中的所有數(shù)據(jù)
delete from user;
-- 刪除 user 表中 id 字段值為 1 的數(shù)據(jù)
delete from user where id = 1;
-- 刪除 user 表 以 id 字段降序排列時的前 5 條數(shù)據(jù)
delete from user order by id desc limit 5;
2. truncate 命令
命令格式
truncate [table] 表名;
使用示例
刪除 user 表中的所有數(shù)據(jù),并且重置自動增長的值
truncate user;
truncate table user;
3. delete、truncate 的區(qū)別
一、delete 刪除數(shù)據(jù)的速度慢,truncate 刪除數(shù)據(jù)的速度快
二、delete 支持事務,可以進行事務回滾;truncate 不支持事務,不能執(zhí)行事務回滾
三、delete 支持帶條件的刪除,可以只刪除某一條數(shù)據(jù);truncate 則不行,只能用于刪除表中的所有數(shù)據(jù)
四、delete 刪除不會重置自動增長(auto_increment),truncate 則會重置自動增長的值,重新以 1 開始
五、delete 可以觸發(fā) 觸發(fā)器,truncate 則不行

浙公網(wǎng)安備 33010602011771號