LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[轉(zhuǎn)帖]SQL中Truncate的用法

liguoquan
2023年5月24日 10:57 本文熱度 1155
:SQL中truncate的用法

SQL中truncate的用法

SQL中truncate的用法

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

一、truncate語法


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

 

參數(shù)


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


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


table_name
要截斷的表的名稱,或要刪除其全部行的表的名稱。

二、truncate使用注意事項

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

  •  

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

  •  

  • 3、truncate TABLE 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標識所用的計數(shù)值重置為該列的種子。如果想保留標識計數(shù)值,請改用 delete。如果要刪除表定義及其數(shù)據(jù),請使用 drop TABLE 語句。

  •  

  • 4、對于由 FOREIGN KEY 約束引用的表,不能使用 truncate TABLE,而應使用不帶 where 子句的 delete 語句。由于 truncate TABLE 不記錄在日志中,所以它不能激活觸發(fā)器。

  •  

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

  •  

  • 6、對用truncate TABLE刪除數(shù)據(jù)的表上增加數(shù)據(jù)時,要使用update STATISTICS來維護索引信息。

  •  

  • 7、如果有ROLLBACK語句,delete操作將被撤銷,但truncate不會撤銷。

  •  

  •  

  •  

  • 三、不能對以下表使用 truncate TABLE

  •  


  • 1、由 FOREIGN KEY 約束引用的表。(您可以截斷具有引用自身的外鍵的表。)


  • 2、參與索引視圖的表。


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


  • 4、對于具有以上一個或多個特征的表,請使用 delete 語句。


  • 5、truncate TABLE 不能激活觸發(fā)器,因為該操作不記錄各個行刪除。

  •  

  •  

  •  

  • 四、truncate、drop、delete區(qū)別

  •  

  •  
    1.drop和delete只是刪除表的數(shù)據(jù)(定義),drop語句將刪除表的結(jié)構(gòu)、被依賴的約束(constrain)、觸發(fā)器 (trigger)、索引(index);依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài)。

    2.delete語句是DML語言,這個操作會放在rollback segement中,事物提交后才生效;如果有相應的觸發(fā)器(trigger),執(zhí)行的時候?qū)⒈挥|發(fā)。truncate、drop是DDL語言,操作后即 生效,原數(shù)據(jù)不會放到rollback中,不能回滾,操作不會觸發(fā)trigger。

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

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

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

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

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

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

    9、當你不再需要該表時, 用 drop;當你仍要保留該表,但要刪除所有記錄時, 用 truncate;當你要刪除部分記錄時(always with a where clause), 用 delete.



該文章在 2023/5/24 10:57:54 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關(guān)報表等業(yè)務管理,結(jié)合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本狂喷奶水在线播放212 | 一级视频国产免费 | 日本精品中文字幕二区a | 熟女中文字幕乱码视频 | 中文字幕亚洲一区二区va在线 | 五月婷婷中文激情 |