隨筆-94  評論-56  文章-3  trackbacks-0
          相同點:truncate和不帶where子句的delete, 以及drop都會刪除表內的數據 
          不同點: 
          1. truncate和 delete只刪除數據不刪除表的結構(定義) 
               drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index); 依賴于該表的存儲過程/函數將保留,但是變為invalid狀態. 
          2.delete語句是dml,這個操作會放到rollback segement中,事務提交之后才生效;如果有相應的trigger,執行的時候將被觸發. 
              truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發trigger. 
          3.速度,一般來說: drop> truncate > delete
          4.想刪除表,當然用drop。想保留表而將所有數據刪除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還是用delete. 
          posted on 2009-07-17 15:26 小言身寸 閱讀(649) 評論(0)  編輯  收藏 所屬分類: 數據庫/SQL語言
          主站蜘蛛池模板: 石泉县| 京山县| 梁山县| 贺兰县| 乌鲁木齐县| 黄浦区| 阿图什市| 翁源县| 乌兰县| 揭西县| 府谷县| 宜宾市| 新丰县| 潜山县| 凤阳县| 台北市| 蓬安县| 泸州市| 芜湖县| 尼勒克县| 兴海县| 天门市| 苍山县| 岚皋县| 邵东县| 马公市| 高密市| 贵州省| 南投县| 万载县| 甘德县| 曲阳县| 临沭县| 美姑县| 区。| 阿合奇县| 高平市| 福清市| 杭锦后旗| 行唐县| 河西区|