最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL清空數據表的方法實例與分析

 更新時間:2016年10月04日 14:05:47   投稿:daisy  
這篇文章給大家詳細介紹了MySQL清空數據表的方法,文中給出了實例代碼,對大家學習使用MySQL具有一定的參考借鑒價值,有需要的可以參考借鑒,下面來一起看看吧。

MySQL數據庫中,如果我們想清空數據表(刪除數據表中所有內容)的話,可以通過下面兩個語句來實現:

truncate table table_n;

delete from table_n;

實例

我們先通過實例看下通過這兩種方式清空數據庫的過程和結果

#delete演示
mysql> create table testforde(
 -> number int not null auto_increment,
 -> name varchar(20) not null,
 -> primary key(number)
 -> );
Query OK, 0 rows affected (0.05 sec)

#truncate演示
mysql> create table testfortr(
 -> number int not null auto_increment,
 -> name varchar(20) not null,
 -> primary key(number)
 -> );
Query OK, 0 rows affected (0.04 sec)

以上是兩張同樣結構的數據表,下面我們先插入數據,然后再分別用 delete truncate 操作它們,看下結果如何

mysql> insert into testforde(name) values('zhagnsan'),('lisi'),('wanger'),('zhaoliu'),('xiaosan'),('qiqi'),('hanba');
Query OK, 7 rows affected (0.04 sec)
Records: 7 Duplicates: 0 Warnings: 0

mysql> insert into testfortr(name) values('zhagnsan'),('lisi'),('wanger'),('zhaoliu'),('xiaosan'),('qiqi'),('hanba');
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0

mysql> select * from testforde;
+--------+----------+
| number | name  |
+--------+----------+
|  1 | zhagnsan |
|  2 | lisi  |
|  3 | wanger |
|  4 | zhaoliu |
|  5 | xiaosan |
|  6 | qiqi  |
|  7 | hanba |
+--------+----------+
7 rows in set (0.01 sec)

mysql> select * from testfortr;
+--------+----------+
| number | name  |
+--------+----------+
|  1 | zhagnsan |
|  2 | lisi  |
|  3 | wanger |
|  4 | zhaoliu |
|  5 | xiaosan |
|  6 | qiqi  |
|  7 | hanba |
+--------+----------+
7 rows in set (0.00 sec)

mysql> delete from testforde;
Query OK, 7 rows affected (0.02 sec)

mysql> truncate table testfortr;
Query OK, 0 rows affected (0.02 sec)

mysql> insert into testforde(name) values('zhagnsan'),('lisi'),('wanger'),('zhaoliu'),('xiaosan'),('qiqi'),('hanba');
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0

mysql> insert into testfortr(name) values('zhagnsan'),('lisi'),('wanger'),('zhaoliu'),('xiaosan'),('qiqi'),('hanba');
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0

mysql> select * from testforde;
+--------+----------+
| number | name  |
+--------+----------+
|  8 | zhagnsan |
|  9 | lisi  |
|  10 | wanger |
|  11 | zhaoliu |
|  12 | xiaosan |
|  13 | qiqi  |
|  14 | hanba |
+--------+----------+
7 rows in set (0.00 sec)

mysql> select * from testfortr;
+--------+----------+
| number | name  |
+--------+----------+
|  1 | zhagnsan |
|  2 | lisi  |
|  3 | wanger |
|  4 | zhaoliu |
|  5 | xiaosan |
|  6 | qiqi  |
|  7 | hanba |
+--------+----------+
7 rows in set (0.00 sec)

從上面操作過程和結果不難看出,它們最大的區(qū)別就是delete在不限定where條件下清空表的話,不會重置auto_increment的值,新插入的會隨著上次的值接著增加;而truncate則不然,他會直接重置為1(其實這里它做的操作可以理解為直接刪除表結構和內容,然后按照表結構重建表)

那么除了上面能明顯看出來的區(qū)別之外,他們還存在以下幾點區(qū)別:

    1、truncate是整個清空的,而delete是逐行刪除的。相較而言,truncate效率較高。

    2、在事物處理方面,truncate 可能不會那么安全。因為 delete 語句是數據庫操作語言(dml),這個操作會放到 rollback segement 中,事務提交之后才生效;如果有相應的 trigger,執(zhí)行的時候將被觸發(fā)。而 truncate 是數據庫定義語言(ddl),操作立即生效,原數據不放到 rollback segment 中,不能回滾,操作不觸發(fā) trigger。

    3、truncate 只能做清空表使用,而 delete 可以配合 where,order by,limit 等字句使用,所以在靈活方面,delete完勝。

    4、truncate操作不會記錄到日志中,而delete則是記錄的。

    5、正是由于 truncate 操作不會記錄到日志中,所以它不會激活觸發(fā)器。所以對于由 foreign 約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句。

    6、truncate 不能用于參與了索引視圖的表

總結

以上就是MySQL清空數據表的全部內容了,希望這篇文章的內容對大家的學習或者工作能有所幫助,如果有疑問大家可以留言交流。

相關文章

  • MySQL8.0.11版本的新增特性介紹

    MySQL8.0.11版本的新增特性介紹

    這篇文章主要介紹了MySQL8.0.11版本的新增特性介紹,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • MySQL語句之MD5()的使用方式

    MySQL語句之MD5()的使用方式

    這篇文章主要介紹了MySQL語句之MD5()的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 解決MySQL中的Slave延遲問題的基本教程

    解決MySQL中的Slave延遲問題的基本教程

    這篇文章主要介紹了解決MySQL中的Slave延遲問題的基本教程,文中針對不同情況給出了一些具體的解決方法,需要的朋友可以參考下
    2015-11-11
  • 關于MySQL數據庫死鎖的案例和解決方案

    關于MySQL數據庫死鎖的案例和解決方案

    MySQL Update語句防止死鎖是指在修改MySQL數據庫的數據時,為避免多個進程同時修改同一數據行而造成死鎖的情況,引入了一些機制來防止死鎖的產生,本文介紹了一個 MySQL 數據庫死鎖的案例和解決方案,需要的朋友可以參考下
    2023-09-09
  • mysql 報錯This function has none of DETERMINISTIC解決方案

    mysql 報錯This function has none of DETERMINISTIC解決方案

    這篇文章主要介紹了mysql 報錯This function has none of DETERMINISTIC解決方案的相關資料,需要的朋友可以參考下
    2016-11-11
  • 一次非法關機導致mysql數據表損壞的實例解決

    一次非法關機導致mysql數據表損壞的實例解決

    本文介紹由于非法硬件關機,造成了mysql的數據表損壞,數據庫不能正常運行的一個實例,接下來是作者排查錯誤的過程,希望對大家能有所幫助
    2013-01-01
  • MySQL 用 limit 為什么會影響性能

    MySQL 用 limit 為什么會影響性能

    對于小的偏移量,直接使用limit來查詢沒有什么問題,但隨著數據量的增大,越往后分頁,limit語句的偏移量就會越大,速度也會明顯變慢,接下來文章就向大家介紹其的原由,感興趣的小伙伴可參考下面文章具體內容
    2021-09-09
  • MySQL Server 8.0.13.0 安裝教程圖文詳解

    MySQL Server 8.0.13.0 安裝教程圖文詳解

    本文通過圖文并茂的形式給大家介紹了MySQL Server 8.0.13.0 安裝教程 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Windows下mysql-5.7.28下載、安裝、配置教程圖文詳解

    Windows下mysql-5.7.28下載、安裝、配置教程圖文詳解

    這篇文章主要介紹了Windows下mysql-5.7.28下載、安裝、配置教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Navicat for Mysql 字段注釋中文亂碼問題及解決

    Navicat for Mysql 字段注釋中文亂碼問題及解決

    這篇文章主要介紹了Navicat for Mysql 字段注釋中文亂碼問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

屯留县| 六枝特区| 饶阳县| 师宗县| 桑日县| 田林县| 赤壁市| 车致| 花垣县| 于田县| 宁武县| 行唐县| 玉树县| 克什克腾旗| 龙口市| 昌黎县| 郯城县| 容城县| 峨山| 哈巴河县| 读书| 上饶市| 茂名市| 黄梅县| 登封市| 沅江市| 吉木乃县| 彰化市| 广汉市| 高台县| 阳东县| 克什克腾旗| 沾益县| 东乡县| 太原市| 石河子市| 镇坪县| 维西| 徐闻县| 四平市| 罗城|