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

MYSQL中Truncate的用法詳解

 更新時(shí)間:2021年01月14日 11:49:11   作者:小明&繹心  
這篇文章主要介紹了MYSQL中Truncate的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文導(dǎo)讀:刪除表中的數(shù)據(jù)的方法有delete,truncate, 其中TRUNCATE TABLE用于刪除表中的所有行,而不記錄單個(gè)行刪除操作。TRUNCATE TABLE 與沒有 WHERE 子句的 DELETE 語句類似;但是,TRUNCATE TABLE 速度更快,使用的系統(tǒng)資源和事務(wù)日志資源更少。下面介紹SQL中Truncate的用法

當(dāng)你不再需要該表時(shí), 用 drop;當(dāng)你仍要保留該表,但要?jiǎng)h除所有記錄時(shí), 用 truncate;當(dāng)你要?jiǎng)h除部分記錄時(shí)(always with a WHERE clause), 用 delete.

Truncate是一個(gè)能夠快速清空資料表內(nèi)所有資料的SQL語法。并且能針對(duì)具有自動(dòng)遞增值的字段,做計(jì)數(shù)重置歸零重新計(jì)算的作用。

一、Truncate語法

[ { database_name.[ schema_name ]. | schema_name . } ]
  table_name
[ ; ]

參數(shù)

database_name
數(shù)據(jù)庫的名稱。

schema_name
表所屬架構(gòu)的名稱。

table_name
要截?cái)嗟谋淼拿Q,或要?jiǎng)h除其全部行的表的名稱。

二、Truncate使用注意事項(xiàng)

1、TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少。

2、DELETE 語句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE 通過釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁的釋放。

3、TRUNCATE TABLE 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識(shí)所用的計(jì)數(shù)值重置為該列的種子。如果想保留標(biāo)識(shí)計(jì)數(shù)值,請(qǐng)改用 DELETE。如果要?jiǎng)h除表定義及其數(shù)據(jù),請(qǐng)使用 DROP TABLE 語句。

4、對(duì)于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應(yīng)使用不帶 WHERE 子句的 DELETE 語句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發(fā)器。

5、TRUNCATE TABLE 不能用于參與了索引視圖的表。

6、對(duì)用TRUNCATE TABLE刪除數(shù)據(jù)的表上增加數(shù)據(jù)時(shí),要使用UPDATE STATISTICS來維護(hù)索引信息。

7、如果有ROLLBACK語句,DELETE操作將被撤銷,但TRUNCATE不會(huì)撤銷。

三、不能對(duì)以下表使用 TRUNCATE TABLE

1、由 FOREIGN KEY 約束引用的表。(您可以截?cái)嗑哂幸米陨淼耐怄I的表。)

2、參與索引視圖的表。

3、通過使用事務(wù)復(fù)制或合并復(fù)制發(fā)布的表。

4、對(duì)于具有以上一個(gè)或多個(gè)特征的表,請(qǐng)使用 DELETE 語句。

5、TRUNCATE TABLE 不能激活觸發(fā)器,因?yàn)樵摬僮鞑挥涗浉鱾€(gè)行刪除。

四、TRUNCATE、Drop、Delete區(qū)別

1.drop和delete只是刪除表的數(shù)據(jù)(定義),drop語句將刪除表的結(jié)構(gòu)、被依賴的約束(constrain)、觸發(fā)器 (trigger)、索引(index);依賴于該表的存儲(chǔ)過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài)。
2.delete語句是DML語言,這個(gè)操作會(huì)放在rollback segement中,事物提交后才生效;如果有相應(yīng)的觸發(fā)器(trigger),執(zhí)行的時(shí)候?qū)⒈挥|發(fā)。truncate、drop是DDL語言,操作后即 生效,原數(shù)據(jù)不會(huì)放到rollback中,不能回滾,操作不會(huì)觸發(fā)trigger。

3.delete語句不影響表所占用的extent、高水線(high watermark)保持原位置不動(dòng)。drop語句將表所占用的空間全部釋放。truncate語句缺省情況下將空間釋放到minextents的 extent,除非使用reuse storage。truncate會(huì)將高水線復(fù)位(回到最初)。

4.效率方面:drop > truncate > delete

5.安全性:小心使用drop與truncate,尤其是在 沒有備份的時(shí)候,想刪除部分?jǐn)?shù)據(jù)可使用delete需要帶上where子句,回滾段要足夠大,想刪除表可以用drop,想保留表只是想刪除表的所有數(shù)據(jù)、 如果跟事物無關(guān)可以使用truncate,如果和事物有關(guān)、又或者想觸發(fā) trigger,還是用delete,如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導(dǎo)入、插入數(shù)據(jù)。

6.delete是DML語句,不會(huì)自動(dòng)提交。drop/truncate都是DDL語句,執(zhí)行后會(huì)自動(dòng)提交。

7、drop一般用于刪除整體性數(shù)據(jù) 如表,模式,索引,視圖,完整性限制等;delete用于刪除局部性數(shù)據(jù) 如表中的某一元組

8、DROP把表結(jié)構(gòu)都刪了;DELETE只是把數(shù)據(jù)清掉

9、當(dāng)你不再需要該表時(shí), 用 drop;當(dāng)你仍要保留該表,但要?jiǎng)h除所有記錄時(shí), 用 truncate;當(dāng)你要?jiǎng)h除部分記錄時(shí)(always with a WHERE clause), 用 delete.

到此這篇關(guān)于MYSQL中Truncate的用法詳解的文章就介紹到這了,更多相關(guān)MYSQL Truncate內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ktl工具實(shí)現(xiàn)mysql向mysql同步數(shù)據(jù)方法

    ktl工具實(shí)現(xiàn)mysql向mysql同步數(shù)據(jù)方法

    在本篇內(nèi)容里我們給大家介紹了用ktl工具實(shí)現(xiàn)mysql向mysql同步數(shù)據(jù)的具體步驟,有需要的朋友們跟著學(xué)習(xí)參考下。
    2019-03-03
  • MySQL分類排名和分組TOP N實(shí)例詳解

    MySQL分類排名和分組TOP N實(shí)例詳解

    大家好,本篇文章主要講的是MySQL分類排名和分組TOP N實(shí)例詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • RHEL7.5下mysql 8.0.11安裝教程

    RHEL7.5下mysql 8.0.11安裝教程

    這篇文章主要為大家詳細(xì)介紹了RHEL7.5下mysql 8.0.11安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Mysql數(shù)據(jù)庫中把varchar類型轉(zhuǎn)化為int類型的方法

    Mysql數(shù)據(jù)庫中把varchar類型轉(zhuǎn)化為int類型的方法

    這篇文章主要介紹了Mysql數(shù)據(jù)庫中把varchar類型轉(zhuǎn)化為int類型的方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • 深入探究MySQL中使用where 1=1是否存在性能影響

    深入探究MySQL中使用where 1=1是否存在性能影響

    最近在項(xiàng)目中使用 mybatis 寫 SQL 使用了 where 1=1 來簡(jiǎn)化多條件拼接的寫法,案例如下,借此聊聊多條件拼接的常見的一些寫法以及 where 1=1 是否存在性能影響,需要的朋友可以參考下
    2024-02-02
  • MySQL的?DDL和DML和DQL的基本語法詳解

    MySQL的?DDL和DML和DQL的基本語法詳解

    SQL語句,即結(jié)構(gòu)化查詢語言(Structured?Query?Language),是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng),這篇文章主要介紹了MySQL的?DDL和DML和DQL的基本語法,需要的朋友可以參考下
    2022-07-07
  • 深入聊聊MySQL中各種對(duì)象的大小長(zhǎng)度限制

    深入聊聊MySQL中各種對(duì)象的大小長(zhǎng)度限制

    在使用mysql的過程中總會(huì)遇到或大或小的問題,這篇文章主要給大家介紹了關(guān)于MySQL中各種對(duì)象的大小長(zhǎng)度限制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 將MySQL從MyISAM轉(zhuǎn)換成InnoDB錯(cuò)誤和解決辦法

    將MySQL從MyISAM轉(zhuǎn)換成InnoDB錯(cuò)誤和解決辦法

    原來自己用的是為了裝的, 所以在設(shè)置database usage(如下圖1)的時(shí)候按照discuz官方的建議,選的都是Non-Transactional Database Only(只支持MyISAM數(shù)據(jù)引擎的非事務(wù)數(shù)據(jù)庫),用MyISAM數(shù)據(jù)庫,還沒涉及到需要InnoDB,因此打算直接不加載INNODB引擎。
    2011-09-09
  • MySQL中庫的基本操作指南(推薦!)

    MySQL中庫的基本操作指南(推薦!)

    MySQL這個(gè)數(shù)據(jù)庫是一個(gè)客戶端-服務(wù)器結(jié)構(gòu)的程序,下面這篇文章主要給大家介紹了關(guān)于MySQL中庫的基本操作指南,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Mysql中explain命令返回參數(shù)的具體使用

    Mysql中explain命令返回參數(shù)的具體使用

    EXPLAIN返回的關(guān)鍵列包括id、select_type、table、type、possible_keys、key、key_len、ref、rows和Extra等,本文就來介紹Mysql中explain命令返回參數(shù),感興趣的可以了解一下
    2024-09-09

最新評(píng)論

永春县| 科尔| 天峻县| 子洲县| 安国市| 康保县| 南宫市| 永济市| 巩留县| 洪雅县| 乐平市| 肥东县| 锡林郭勒盟| 石柱| 安塞县| 华亭县| 文昌市| 萍乡市| 宝鸡市| 宜章县| 阿巴嘎旗| 奎屯市| 利川市| 津南区| 夹江县| 双辽市| 揭东县| 松江区| 麻栗坡县| 青州市| 定西市| 张北县| 七台河市| 拜城县| 浦东新区| 湘乡市| 南木林县| 安庆市| 安仁县| 荔浦县| 西宁市|