问题是: 我只执行DML语句,我会尝试执行DDL语句,但是什么 如果DDL失败会发生?是否只会回滚DDL或DML?
像这样:
-- point 1
INSERT ...
INSERT ...
INSERT ...
// 3个插入行
-- point 2
CREATE ... (crash)
它会回归什么程度?第1点还是第2点? 非常感谢。
答案 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