婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > SQL中Truncate的用法

SQL中Truncate的用法

熱門(mén)標(biāo)簽:外呼系統(tǒng)電銷(xiāo)專(zhuān)用 百度地圖標(biāo)注不同路線 智能語(yǔ)音外呼系統(tǒng)選哪家 京華物流公司地圖標(biāo)注 奧威地圖標(biāo)注多個(gè)地方 千呼電銷(xiāo)機(jī)器人價(jià)格 怎樣在地圖上標(biāo)注路線圖標(biāo) 優(yōu)質(zhì)地圖標(biāo)注 武漢長(zhǎng)沙外呼系統(tǒng)方法和技巧

本文導(dǎo)讀:刪除表中的數(shù)據(jù)的方法有delete,truncate, 其中TRUNCATE TABLE用于刪除表中的所有行,而不記錄單個(gè)行刪除操作。TRUNCATE TABLE 與沒(méi)有 WHERE 子句的 DELETE 語(yǔ)句類(lèi)似;但是,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語(yǔ)法。并且能針對(duì)具有自動(dòng)遞增值的字段,做計(jì)數(shù)重置歸零重新計(jì)算的作用。

一、Truncate語(yǔ)法

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

參數(shù)

database_name

數(shù)據(jù)庫(kù)的名稱(chēng)。

schema_name

表所屬架構(gòu)的名稱(chēng)。

table_name

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

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

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

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

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 語(yǔ)句。 

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

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

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

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

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

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

2、參與索引視圖的表。

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

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

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

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

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

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

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

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

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

6.delete是DML語(yǔ)句,不會(huì)自動(dòng)提交。drop/truncate都是DDL語(yǔ)句,執(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.

總結(jié)

以上所述是小編給大家介紹的SQL中Truncate的用法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Oracle給用戶(hù)授權(quán)truncatetable的實(shí)現(xiàn)方案
  • delete from 表名與truncate table 表名區(qū)別
  • golang實(shí)戰(zhàn)之truncate日志文件詳解
  • tf.truncated_normal與tf.random_normal的詳細(xì)用法
  • smarty中改進(jìn)truncate使其支持中文的方法
  • SQL Server中TRUNCATE事務(wù)回滾操作方法
  • 實(shí)例理解SQL中truncate和delete的區(qū)別
  • 詳解SQL中drop、delete和truncate的異同
  • Mysql開(kāi)啟慢SQL并分析原因
  • Truncate Table的用法講解

標(biāo)簽:威海 宿州 銅仁 防疫戰(zhàn)設(shè) 益陽(yáng) 七臺(tái)河 天水 來(lái)賓

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL中Truncate的用法》,本文關(guān)鍵詞  SQL,中,Truncate,的,用法,SQL,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL中Truncate的用法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于SQL中Truncate的用法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 石渠县| 通道| 施秉县| 陵川县| 明水县| 涡阳县| 襄城县| 三门峡市| 理塘县| 东源县| 鄂托克旗| 南投县| 巴东县| 乌拉特中旗| 乌海市| 米脂县| 浦江县| 东宁县| 高邮市| 涟源市| 新河县| 疏勒县| 望谟县| 沾益县| 奎屯市| 阿鲁科尔沁旗| 玛曲县| 手机| 衡山县| 乌恰县| 乌海市| 大埔县| 阿城市| 德清县| 五台县| 三门县| 商城县| 许昌县| 福鼎市| 大同市| 吉水县|