狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[轉帖]SQL中Truncate的用法

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

SQL中truncate的用法

SQL中truncate的用法

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

一、truncate語法


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

 

參數


database_name
數據庫的名稱。


schema_name
表所屬架構的名稱。


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

二、truncate使用注意事項

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

  •  

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

  •  

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

  •  

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

  •  

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

  •  

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

  •  

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

  •  

  •  

  •  

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

  •  


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


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


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


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


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

  •  

  •  

  •  

  • 四、truncate、drop、delete區別

  •  

  •  
    1.drop和delete只是刪除表的數據(定義),drop語句將刪除表的結構、被依賴的約束(constrain)、觸發器 (trigger)、索引(index);依賴于該表的存儲過程/函數將保留,但是變為invalid狀態。

    2.delete語句是DML語言,這個操作會放在rollback segement中,事物提交后才生效;如果有相應的觸發器(trigger),執行的時候將被觸發。truncate、drop是DDL語言,操作后即 生效,原數據不會放到rollback中,不能回滾,操作不會觸發trigger。

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

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

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

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

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

    8、drop把表結構都刪了;delete只是把數據清掉

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



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