MySQL中刪除數據表有三種方式:
drop table:drop 是直接刪除表信息,速度最快,但是無法找回數據
例如刪除 user 表:drop table user;
drop table user;
希望刪除表結構時,用 drop
delete from:delete 是刪除表中的數據,不刪除表結構,速度最慢,但可以與where連用,可以刪除指定的行
例如刪除user表的所有數據:delete from user;
delete from user;
刪除user表的指定記錄:delete from user where user_id = 1;
delete from user where user_id = 1;
希望保留表結構,但要刪除部分記錄時, 用 delete
truncate (table):truncate 是刪除表數據,不刪除表的結構,速度排第二,但不能與where一起使用
例如刪除 user 表:truncate table user;
truncate table user;
希望保留表結構,但要刪除所有記錄時, 用 truncate
truncate和不帶where子句的delete,drop都會刪除表內的數據;truncate和delete 只刪除數據不刪除表結構,truncate 刪除后將重建索引(新插入數據后id從0開始記起),而 delete不會刪除索引 (新插入的數據將在刪除數據的索引后繼續增加),drop語句將刪除表的結構包括依賴的約束,觸發器,索引等;drop和truncate刪除時不記錄MySQL日志,不能回滾,delete刪除會記錄MySQL日志,可以回滾。
回答所涉及的環境:聯想天逸510S、Windows 10。
MySQL中刪除數據表有三種方式:
drop table:drop 是直接刪除表信息,速度最快,但是無法找回數據
例如刪除 user 表:
drop table user;希望刪除表結構時,用 drop
delete from:delete 是刪除表中的數據,不刪除表結構,速度最慢,但可以與where連用,可以刪除指定的行
例如刪除user表的所有數據:
delete from user;刪除user表的指定記錄:
delete from user where user_id = 1;希望保留表結構,但要刪除部分記錄時, 用 delete
truncate (table):truncate 是刪除表數據,不刪除表的結構,速度排第二,但不能與where一起使用
例如刪除 user 表:
truncate table user;希望保留表結構,但要刪除所有記錄時, 用 truncate
truncate和不帶where子句的delete,drop都會刪除表內的數據;truncate和delete 只刪除數據不刪除表結構,truncate 刪除后將重建索引(新插入數據后id從0開始記起),而 delete不會刪除索引 (新插入的數據將在刪除數據的索引后繼續增加),drop語句將刪除表的結構包括依賴的約束,觸發器,索引等;drop和truncate刪除時不記錄MySQL日志,不能回滾,delete刪除會記錄MySQL日志,可以回滾。
回答所涉及的環境:聯想天逸510S、Windows 10。