Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入单个数据库记录失败时是否需要回滚?_Java_Sql_Oracle_Jdbc - Fatal编程技术网

Java 插入单个数据库记录失败时是否需要回滚?

Java 插入单个数据库记录失败时是否需要回滚?,java,sql,oracle,jdbc,Java,Sql,Oracle,Jdbc,我不太熟悉数据库事务。我想知道一种情况,一条记录被插入到数据库中。交易是否必要。如果是这样,如果插入一条记录失败,是否需要回滚 我问的这个问题与JDBC有关,但可以是一般数据库意义上的问题。来自文档: 语句级回滚 如果在执行期间的任何时候,SQL语句导致错误,则该语句的所有效果都将回滚。回滚的效果就像该语句从未运行过一样。此操作是语句级回滚 语句级原子性 Oracle数据库支持语句级原子性,这意味着SQL语句是一个原子工作单元,要么完全成功,要么完全失败 因此,如果仅执行唯一的inser

我不太熟悉数据库事务。我想知道一种情况,一条记录被插入到数据库中。交易是否必要。如果是这样,如果插入一条记录失败,是否需要回滚

我问的这个问题与JDBC有关,但可以是一般数据库意义上的问题。

来自文档:

  • 语句级回滚 如果在执行期间的任何时候,SQL语句导致错误,则该语句的所有效果都将回滚。回滚的效果就像该语句从未运行过一样。此操作是语句级回滚

  • 语句级原子性 Oracle数据库支持语句级原子性,这意味着SQL语句是一个原子工作单元,要么完全成功,要么完全失败


  • 因此,如果仅执行唯一的insert语句而失败,则不需要回滚。

    回滚仅在使用事务时才需要,而事务仅在执行多个绑定在一起的插入或更新时才需要。有关更多信息,在事务中包含单个插入/更新并尝试提交/回滚是否有缺点?