MySQL – DELETE, TRUNCATE 及 DROP 的分別

在 MySQL 要刪除資料可以用 DELETE 指令, 而清空資料表可以用 TRUNCATE, 刪除資料表則可以用 DROP TABLE, 以下會介紹這三個 MySQL 指令的分別。

TRUNCATE

MySQL 的 TRUNCATE 是用作清空資料表, auto_increment 的數值也會重設, 清空後的資料表就如同剛建立一樣, 因為 TRUNCATE 的做法是先 DROP 掉資料表, 再用 CREATE 指令重新建立資料表, 刪除所有資料的執行效率比 DELETE 高, 語法是:

DELETE

DELETE 指令用作刪除資料表中的資料, 可以加入 WHERE, ORDER BY 及 LIMIT 過濾要刪除的資料, 如果沒有加入過濾條件, 則會刪除資料表內所有資料, 例如:

由於 DELETE 是逐筆資料刪除, 刪除的速度不及 TRUNCATE, 而且即使執行以上指令刪除所有資料, auto_increment 的數值也不會重設。

DROP TABLE

DROP TABLE 就是將整個資料表刪除, 即除了刪除資料表內的資料外, 連同整個資料表也會一拼刪除, 語法是:




Leave a Reply