delete與truncate刪除表中資料的區別

2021-10-09 10:48:57 字數 1562 閱讀 2717

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...