DDL操作的自動提交
Oracle的autocommit永遠是false.
但是在執行DDL操作之後,會隱式提交,所以DDL操作不能回滾。
其實在DDL操作之前,也有一個隱式提交
測試如下程式碼:
新建一個表test和t1,在程式碼中向test表插入一行,然後動態SQL建表。
因為t1表已經存在,所以動態SQL建表將報錯,模擬DDL執行異常的情況。
這個時候進行回滾,是不能撤銷test表中插入的資料的。
因為在DDL執行之前,已經隱式的提交了事物。
但是在執行DDL操作之後,會隱式提交,所以DDL操作不能回滾。
其實在DDL操作之前,也有一個隱式提交
測試如下程式碼:
-
create table test(id int);
-
create table t1(id int);
-
-
declare
-
begin
-
insert into test values(10);
-
execute immediate 'create table t1(id int);';
-
rollback;
-
end;
- /
因為t1表已經存在,所以動態SQL建表將報錯,模擬DDL執行異常的情況。
這個時候進行回滾,是不能撤銷test表中插入的資料的。
因為在DDL執行之前,已經隱式的提交了事物。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1076352/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DML, DDL操作的自動提交問題
- 配置GoldenGate啟動DDL支援同步DDL操作Go
- 自動提交(AUTOCOMMIT)的配置MIT
- jdbc控制自動提交功能JDBC
- Oracle ddl隱式提交注意點Oracle
- MysqL自動提交機制的關閉MySql
- hadoop自動提交指令碼Hadoop指令碼
- 限制DDL操作(四)
- 限制DDL操作(三)
- 限制DDL操作(二)
- 限制DDL操作(一)
- MySQL DDL操作表MySql
- 禁止使用者的DDL操作
- 04 MySQL 表的基本操作-DDLMySql
- Mysql在全域性禁用自動提交MySql
- github提交操作Github
- 用 VB 實現表單的自動提交 (轉)
- Mysql 從庫如果有未提交的事務主庫ddl操作導致主從延遲MySql
- MySQL的DDL和DML操作語法MySql
- 控制DDL許可權及紀錄DDL操作的Trigger
- logmnr挖掘中間有DDL的操作示例-對於執行DDL前的操作無法挖掘
- MySQL 的共享鎖和排它鎖以及自動提交MySql
- Windows下關閉MySQL的自動提交(autocommit)功能WindowsMySqlMIT
- oracle追蹤誤操作DDLOracle
- DML操作 DDL觸發器觸發器
- 11.2.0.3.0 comment 操作不再是ddl操作???
- DDL、DML、DCL、DQL相關操作
- Mysql 基礎操作 DDL DML DCLMySql
- Oracle 觸發器 限制DDL操作Oracle觸發器
- 資料庫DDL操作審計資料庫
- 資料庫操作語言DDL資料庫
- MySQL5.7 InnoDB線上DDL操作MySql
- selenium自動化操作
- PostgreSQL 建立主鍵自增表的 DDLSQL
- MSsql每天自動備份自動清除日誌的操作方法SQL
- 配置支援DML和DDL操作同步的GoldenGateGo
- openpyxl 的基本操作 (辦公自動化)
- Oracle sqlplus引數autocommit(自動提交)的設定OracleSQLMIT