请问Oracle何时开启一个事务啊,谢谢
这里说的,oracle使用隐式事务,不需要定义事务开始,第一个sql语句自动开始一个事务,直到commit/rollback/ddl命令该事务结束。之后的第一个sql语句...
这里说的,oracle使用隐式事务,不需要定义事务开始,第一个sql语句自动开始一个事务,直到commit/rollback/ddl命令该事务结束。之后的第一个sql语句又自动开始一个事务。
难道Oracle中任意sql语句都可以开始事务吗,谢谢
事务在commit/rollback/ddl命令时会自动结束。当insert语句后会打开事务,然后再来一个insert语句又会是一个新事物是吗 展开
难道Oracle中任意sql语句都可以开始事务吗,谢谢
事务在commit/rollback/ddl命令时会自动结束。当insert语句后会打开事务,然后再来一个insert语句又会是一个新事物是吗 展开
展开全部
当然不是了,在Oracle中,只有DML才会开启一个事务。也就是说Insert,Update,Delete这些都会开启一个事务,并且该事务在commit/rollback/ddl命令时会自动结束。
其他的,像查询语句Select(不包含For Update等语句)时,是不会开启一个事务的。
补充:
首先有一点非常抱歉,上次的回答中误将DML写成了DDL,可能这一点儿让你误解了。
“当insert语句后会打开事务,然后再来一个insert语句又会是一个新事物是吗”这种说法是不正确的,第一个Insert没有commit或者rollback的情况下,第二个Insert和第一个是属于同一个事务的。因为Insert不属于commit/rollback/ddl命令,而是属于DML命令。
当第一个Insert结束后,立即执行一个新建表,删除表等命令(DDL命令),则会结束当前事务。
其他的,像查询语句Select(不包含For Update等语句)时,是不会开启一个事务的。
补充:
首先有一点非常抱歉,上次的回答中误将DML写成了DDL,可能这一点儿让你误解了。
“当insert语句后会打开事务,然后再来一个insert语句又会是一个新事物是吗”这种说法是不正确的,第一个Insert没有commit或者rollback的情况下,第二个Insert和第一个是属于同一个事务的。因为Insert不属于commit/rollback/ddl命令,而是属于DML命令。
当第一个Insert结束后,立即执行一个新建表,删除表等命令(DDL命令),则会结束当前事务。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询