隨筆-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 小言身寸 閱讀(656) 評論(0)  編輯  收藏 所屬分類: 數據庫/SQL語言
          主站蜘蛛池模板: 长白| 镇沅| 巴楚县| 景宁| 昌平区| 绥德县| 韶山市| 辽宁省| 榕江县| 左贡县| 长春市| 桐柏县| 昌吉市| 曲阳县| 平湖市| 赣榆县| 敖汉旗| 黄浦区| 新丰县| 余庆县| 柳州市| 重庆市| 阿坝县| 万载县| 汾西县| 武威市| 凭祥市| 长海县| 澳门| 固安县| 林州市| 临猗县| 会东县| 拜城县| 华安县| 铜鼓县| 江永县| 双流县| 镇康县| 喜德县| 英超|