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

Is a rollback necessary when insert of a single database record fails?

我对数据库事务不太熟悉。我想知道将单个记录插入数据库的情况。是否需要交易。如果是这样,如果插入一条记录失败,是否需要回滚?

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

来自文档:

  1. Statement-Level Rollback

    Statement-Level Rollback If at any time during execution a SQL statement causes an error, all effects of the statement are rolled back. The effect of the rollback is as if that statement had never been run. This operation is a statement-level rollback.

  2. Statement-Level Atomicity

    Statement-Level Atomicity Oracle Database supports statement-level atomicity, which means that a SQL statement is an atomic unit of work and either completely succeeds or completely fails.

因此,如果您只执行了唯一的插入语句并且它失败了,则不需要回滚。