您現在的位置: 365建站網 > 365學習 > mysql清空表中truncate與delete的用法和區別

mysql清空表中truncate與delete的用法和區別

文章來源:365jz.com     點擊數:232    更新時間:2021-03-14 20:37   參與評論

mySQL清空表中truncate與delete都是刪除表的操作,但還是有些許不同。

delete和truncate區別如下:

一、靈活性:delete可以條件刪除數據,而truncate只能刪除表的所有數據;

delete * from table_name;

delete from table_test where ... 

truncate table table_test 

注 : truncate操作中的table可以省略,delete操作中的*可以省略

 delete是一條一條刪除記錄的,配合事件(transaction)和回滾(rollback)可以找回數據,且自增(auto_increment)不會重置。
 truncate則是直接刪除整個表,再重新創建一個一模一樣的新表,auto_increment會被重置,且數據無法找回。

二、效率:delete效率低于truncate,delete是一行一行地刪除,truncate會重建表結構,

三、事務:truncate是DDL語句,需要drop權限,因此會隱式提交,不能夠rollback;delete是DML語句,可以使用rollback回滾。

四、觸發器:truncate 不能觸發任何Delete觸發器;而delete可以觸發delete觸發器。

1> truncate 是整體刪除 (速度較快),delete是逐條刪除 (速度較慢)
2> truncate 不寫服務器 log,delete 寫服務器 log,也就是 truncate 效率比 delete高的原因
3> truncate 不激活trigger (觸發器),但是會重置Identity (標識列、自增字段),相當于自增列會被置為初始值,又重新從1開始記錄,而不是接著原來的 ID數。而 delete 刪除以后,identity 依舊是接著被刪除的最近的那一條記錄ID加1后進行記錄。如果只需刪除表中的部分記錄,只能使用 DELETE語句配合 where條件
mysql> select * from students_bak;
+-----+----------+--------+---------+
| sid | sname    | gender | dept_id |
+-----+----------+--------+---------+
| 101 | zhangsan | male   |      10 |
|   1 | aa       | 1      |       1 |
+-----+----------+--------+---------+
2 rows in set (0.00 sec)
mysql> truncate table students_bak;
Query OK, 0 rows affected (0.16 sec)
mysql> select * from students_bak;
Empty set (0.00 sec)
mysql> set autocommit=off;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from students3;
+-----+-------+--------+---------+--------+
| sid | sname | gender | dept_id | sname2 |
+-----+-------+--------+---------+--------+
| 100 | NULL  | 1      |       1 | NULL   |
+-----+-------+--------+---------+--------+
1 row in set (0.01 sec)
mysql> truncate table students3;
Query OK, 0 rows affected (0.06 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from students3;
Empty set (0.00 sec)
mysql> delete from students;
Query OK, 5 rows affected (0.00 sec)
mysql> select * from students;
Empty set (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.07 sec)
mysql> select * from students;
+-----+-------+--------+---------+
| sid | sname | gender | dept_id |
+-----+-------+--------+---------+
|   1 | aa    | 3      |       1 |
|   4 | cc    | 3      |       1 |
|   5 | dd    | 1      |       2 |
|   6 | aac   | 1      |       1 |
|  10 | a     | 1      |       1 |
+-----+-------+--------+---------+
5 rows in set (0.00 sec)



如對本文有疑問,請提交到交流論壇,廣大熱心網友會為你解答??! 點擊進入論壇


發表評論 (232人查看,0條評論)
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼: 點擊我更換圖片
最新評論
------分隔線----------------------------
自拍偷拍福力视频,偷拍国际精品,麻豆一区福利电影,国产网红视频午夜福利,se视频大全,久久国产AV影院 免费动漫成本人视频网站| 公和我做好爽添厨房在线观看| 精品人妻AV区| 让娇妻尝试三p| 办公室里玩弄人妻系列| 强行征服邻居人妻hd高清| 岛国精品一区免费视频在线| 欧美高清一区三区在线专区| 先锋影音av最新av资源网| 国产成人8x人网站视频| 波多野结衣之美诱护士| 亚洲国产欧美在线观看片不卡| 女人与狥交下配a级毛片| 宅男宅女播放器| 欧美乱码伦视频免费| 人人做人碰人人添| 老少配maturetube 多毛| 手机在线观看av无码片| 成在线人永久免费视频播放| 日本还a大片免费| 国产在线精品一区在线观看| 性欧洲精品videos| 久爱www人成免费网站| 欧美大片在线观看完整版| 最新国偷产拍在线播放| 我和漂亮的妽妽发生了性关糸| 超市女厕大屁股偷拍| 久久爱视频这里只有精品100| 精品国产高清在线看国产毛片| 年轻的小痍子3免费观看| 亚洲区少妇熟女专区| http://www.hugecrab.com