隨筆-94  評論-56  文章-3  trackbacks-0
          相同點:truncate和不帶where子句的delete, 以及drop都會刪除表內(nèi)的數(shù)據(jù) 
          不同點: 
          1. truncate和 delete只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(定義) 
               drop語句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger),索引(index); 依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài). 
          2.delete語句是dml,這個操作會放到rollback segement中,事務(wù)提交之后才生效;如果有相應(yīng)的trigger,執(zhí)行的時候?qū)⒈挥|發(fā). 
              truncate,drop是ddl, 操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger. 
          3.速度,一般來說: drop> truncate > delete
          4.想刪除表,當然用drop。想保留表而將所有數(shù)據(jù)刪除. 如果和事務(wù)無關(guān),用truncate即可. 如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete. 
          posted on 2009-07-17 15:26 小言身寸 閱讀(649) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫/SQL語言
          主站蜘蛛池模板: 晋州市| 灵武市| 锡林郭勒盟| 通河县| 九寨沟县| 明水县| 蒙城县| 周宁县| 江阴市| 林口县| 霍州市| 大邑县| 南乐县| 慈溪市| 勐海县| 崇阳县| 阜新市| 江安县| 巴林左旗| 陆良县| 北票市| 定安县| 阿巴嘎旗| 廉江市| 重庆市| 曲周县| 同江市| 竹溪县| 天峨县| 镇原县| 宝清县| 清水河县| 武城县| 白银市| 沂源县| 凭祥市| 民丰县| 云龙县| 勐海县| 南岸区| 墨脱县|