数据库-隔离级别和传播级别


事务的隔离级别isolation

默认[使用数据库默认事务]

  • 读未提交              脏读、不可重复读、幻想读
  • 读已提交              不可重复读、幻想读
  • 可重复读              幻想读
  • 序列化                  无

事务的传播行为propagation

REQUIRED[默认]

       如果当前没有事务,则新建一个事务;否则在当前事务中运行。

REQUIRED_NEW

       无论当前有没有事务,都新建一个事务。内部事务的提交回滚和外部事务独立。

NESTED

      如果当前没有事务,则新建一个事务;否则在当前事务中运行,但是会创建一个savepoint。内部事务的回滚不会影响外层,但是提交要和外层一块提交,即外层发生回滚会回滚内层事务

SURPPORTED

     如果有就在事务中运行,否则在没有事务的环境运行

NOT_SUPPORT

     无论有没有事务,都在没有事务的环境运行

NEVER

     不支持事务,如果有就报错

MANDATORY

     必须有事务,如果不存在事务,则报错