遇到一個問題求大佬講解
uj5u.com熱心網友回復:
C,這個答案你自己動手實際做個測驗就知道了。提示:Oracle的DDL前后都隱含了commit
uj5u.com熱心網友回復:
感謝大佬謝謝你的答案
uj5u.com熱心網友回復:
后面有個rollback,回滾以后就恢復到執行命令之前了。uj5u.com熱心網友回復:
回滾到哪個命令執行之前?
uj5u.com熱心網友回復:
Rollback其實就是commit的逆操作,rollback主要做如下事情:撤銷已做的所有修改。其完成方式如下:從undo段讀回資料,然后實際上逆向執行前面所做的操作,并將undo條目標記為已用。如果先前插入了一行,ROLLBACK會將其洗掉。如果更新了一行,回滾就會取消更新。如果洗掉了一行,回滾將把它再次插入。會回滾到你做了commit操作的那個狀態,你這幾條sql都沒有提交,所以會回滾到初始狀態。當然這只針對插入/洗掉/更新資料這一類的操作。創建表回滾不了的。就是說回滾以后b表還存在,但是前幾條插入資料的sql都回滾掉了。
uj5u.com熱心網友回復:
動手測下,看看是不是你想象中的結果
uj5u.com熱心網友回復:
a,b表都只有2,abc,2這行資料,前面插入的1那行回滾掉了。沒仔細看還以為先創建的表b再插入的2那行資料
uj5u.com熱心網友回復:
https://www.cnblogs.com/fan-yuan/p/7879353.htmluj5u.com熱心網友回復:
這個沒說是什么資料庫產品啊,也有點問題。
比如PG,begin開個事務,DDL照樣可以回滾
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/34720.html
標籤:基礎和管理
上一篇:Oracle生僻字亂碼怎樣解決
