隨筆-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語言
          主站蜘蛛池模板: 敦化市| 永吉县| 彰武县| 湘潭市| 巴青县| 保德县| 利津县| 昌都县| 临夏县| 尚义县| 枣强县| 西乌珠穆沁旗| 阳原县| 瑞金市| 湘阴县| 永平县| 绿春县| 南溪县| 上蔡县| 永泰县| 安图县| 石嘴山市| 泾阳县| 巴南区| 井冈山市| 临高县| 苏尼特左旗| 正蓝旗| 永福县| 清河县| 宝丰县| 镇远县| 金坛市| 雷波县| 阜城县| 平湖市| 普安县| 泸溪县| 渭源县| 新乐市| 手游|