posts - 8, comments - 13, trackbacks - 0, articles - 43
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          先簡單回顧下sql語言的幾種語言:ddl,dml,dcl,它們分別是:

          ddl即data definition language,例如常用的:create,alter,drop,truncate,grant,revoke,comment;

          dml即data manipulation language,我們經常使用的:select,insert,update,delete等都是數據操作語言。

          dcl即data control language,數據控制語言,平時基本用不到,如commit,savepoint,rollback,set transaction。

           

          所以區別主要在:

          • delete是dml語句,這個操作使用放在rollback segement里,事務提交后才生效,是可以回滾的;truncate是ddl語句,它不在rollback segement里的,事務自動提交,操作立即生效,沒有回滾一說,除非自身失敗;
          • 還有一個關鍵,雖然truncate是數據定義語言,但是truncate和delete操作一樣,都只刪除數據不刪除表結構,兩者的主要區別在于,truncate操作是沒有備份的,所以它執行速度比delete快;而另一個ddl語句drop,將刪除的是結構包括被依賴的觸發器,索引,約束,依賴該表的存儲過程會被保留。剛才又搜索了下truncate和drop操作之后數據也還是可以找回來的:http://dbsnake.com/2010/06/truncate-drop-recovery.html

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 高安市| 仪陇县| 徐水县| 宝山区| 门头沟区| 桃园县| 长宁区| 芮城县| 漳平市| 绵阳市| 马关县| 砚山县| 兰州市| 思南县| 甘孜| 石屏县| 当阳市| 招远市| 忻州市| 前郭尔| 读书| 武强县| 余庆县| 紫金县| 定远县| 襄垣县| 大英县| 望奎县| 林周县| 登封市| 乡宁县| 绩溪县| 曲水县| 威宁| 大渡口区| 扎鲁特旗| 新化县| 冷水江市| 合作市| 板桥市| 天津市|