1.delete與truncate都可以用來刪除表中資料
2.delete刪除你表中資料之後,再次插入資料索引會接著之前的,而truncate刪除表中後重新插入資料索引會從初始大小開始。
3.delete在刪除資料後會將刪除操作作為事務儲存在日誌中,這樣就可以進行事務回滾。而 truncate則不可以事務回滾。
truncate
刪除之前
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 1 | null |
| 2 | 小明 |
+----+------+
2 rows in set
執行truncate語句之後
mysql> truncate table t_new;
query ok, 0 rows affected
mysql> select * from t_new;
empty set
重新插入資料
mysql> insert into t_new(name)value("小明");
query ok, 1 row affected
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 1 | 小明 |
+----+------+
1 row in set
可以看到truncate刪除表中資料後,再次插入資料,id變為1。
delete
刪除之前
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 1 | 小明 |
+----+------+
1 row in set
執行delete語句
mysql> delete from t_new;
query ok, 1 row
mysql> select * from t_new;
empty set
再次插入資料
mysql> insert into t_new(name)value("小明");
query ok, 1 row affected
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 2 | 小明 |
+----+------+
1 row in set
可以看到delete刪除表中資料後,再次插入資料,id的值接著之前的。 truncate與delete的區別
truncate與delete的區別 truncate table命令將快速刪除資料表中的所有記錄,但保留資料表結構。這種快速刪除與delete from 資料表的刪除全部資料表記錄不一樣,delete命令刪除的資料將儲存在系統回滾段中,需要的時候,資料可以回滾恢復,而truncate命令刪除的資料...
Delete與Truncate以及Drop的區別
相同點 truncate和不帶where子句的delete,以及drop都會刪除表內的資料 不同點 1.truncate和 delete只刪除資料不刪除表的結構 定義 drop語句將刪除表的結構被依賴的約束 constrain 觸發器 trigger 索引 index 依賴於該錶的儲存過程 函式將保...
Truncate與Delete的區別
truncate table 在功能上與不帶 where 子句的 delete 語句相同 二者均刪除表中的全部行。但 truncate table 比 delete 速度快,且使用的系統和事務日誌資源少。delete 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。truncate tabl...