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

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


          網站導航:
           
          主站蜘蛛池模板: 涪陵区| 丰镇市| 宣城市| 平南县| 收藏| 沙湾县| 民权县| 麟游县| 铜陵市| 郓城县| 大悟县| 公安县| 乳山市| 蒙自县| 景洪市| 东源县| 凭祥市| 平谷区| 南华县| 全州县| 辽阳市| 集安市| 扎囊县| 平和县| 高台县| 永川市| 鄂托克旗| 新营市| 雅安市| 曲沃县| 连州市| 沧源| 光山县| 黎平县| 平定县| 凤阳县| 微山县| 会昌县| 襄城县| 龙岩市| 舟山市|