如果DDL语句崩溃会怎么样? (Oracle DB)

时间:2017-09-28 14:41:12

标签: sql oracle crash ddl

问题是:  我只执行DML语句,我会尝试执行DDL语句,但是什么  如果DDL失败会发生?是否只会回滚DDL或DML?

像这样:

-- point 1

 INSERT ...

 INSERT ...

 INSERT ...

// 3个插入行

-- point 2

CREATE ... (crash)

它会回归什么程度?第1点还是第2点? 非常感谢。

1 个答案:

答案 0 :(得分:4)

DDL会隐式提交您的交易,即使它失败了,这里是Ask tom的例子:

create table t (
  x int
);

insert into t values (1);

alter table t add (x varchar2(10)); -- duplicate column

SQL Error: ORA-01430: column being added already exists in table

rollback;

select * from t;

X  
1  

https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:9532421900346923086