sql - DDL语句是否总是为您提供隐式提交,还是可以得到隐式回滚?

标签 sql oracle transactions ddl

如果您正在事务处理中途执行DDL语句(例如截断表),则事务将提交。

我想知道这是否始终都是正确的定义,或者是否存在隐藏在某个位置的设置,该设置将回滚事务而不是提交事务。

谢谢。

编辑以澄清...

我不想在截断后回滚。我只想确认已经执行的语句绝对总是要在DDL之前提交。只是想确保某个人没有设置可以破坏我的代码的系统属性。

我了解在DDL之前和之后进行提交的需求,但是从概念上讲,我认为可以通过在DDL之前进行回滚和在DDL之后进行提交来实现相同的一致性要求。

最佳答案

不,它将始终提交。

如果要回滚,则必须在DDL之前进行。

如果要从现有事务中隔离DDL,则必须在其自己的独立事务中执行它。

关于sql - DDL语句是否总是为您提供隐式提交,还是可以得到隐式回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730621/

相关文章:

sql - 使用oracle plsql触发器从生日计算年龄并将年龄插入表中

SQL 删除编号最小的重复行

java - Spring : how to get multiple datasource with GenericDao?

grails - NPE的域的beforeInsert方法中的第二个数据存储中创建表失败

sql - count(*) 和 Count(field_name) 在oracle中返回差值输出

sql-server - 删除和添加列时纠正错误处理

带空格的mysql全文搜索 bool 模式

sql - 无论如何加快大表的归档

C#/甲骨文 : Connect

python - 应用程序与数据库常驻连接池