数据库事务

Posted sanzashu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库事务相关的知识,希望对你有一定的参考价值。

事务(transaction):是需要在同一个处理单元中执行的一系列更新处理的集合(INSERT/DELETE/UPDATE)
事务语法:
    事务开始语句(START TRANSACTION):
    DML语句1
    DML语句1
    DML语句1
    ...
    事务结束语句(COMMIT或者ROLLBACK)

START TRANSACTION;
--运动T恤的销售单价下调1000日元
UPDATE Product
     SET sale_price = sale_price - 1000
 WHERE product_name = '运动T恤';

-- T恤的销售单价上浮1000日元
UPDATE Product
     SET sale_price = sale_price + 1000
 WHERE product_name = 'T恤';
COMMIT;

注:orcle和db2没有特定的开始语句

COMMIT:事务一旦提交就无法恢复到开始前的状态了

ROLLBACK:一旦回滚,数据库就会恢复到事务开始之前的状态

事务的四种特性:
  • 原子性:事务结束时,其中包含的更新处理要么全部执行,要么全部不执行。
  • 一致性(完整性):事务中包含的处理要满足数据库提前设置的约束,如主键约束或者not null约束。(违反约束会导致失败)
  • 隔离性:保证不同的事物之间互不干扰。该特性保证了事物之前互相不嵌套,某个事物进行中的更改,在改事物结束之前,对其他事物而言是不可见的。没有提交之前,其他事物看不到新添加的记录。
  • 持久性:事物结束后,DBMS能保证该时间点的数据转态会被保存的特性。

以上是关于数据库事务的主要内容,如果未能解决你的问题,请参考以下文章

如何绕过将数据模型传递给片段参数以避免事务太大异常?

回栈事务后如何持久化分片数据?

片段事务分离和附加后ListView不工作?

理解片段事务期间片段的生命周期方法调用

提交带有全屏片段的片段事务

使用 OnItemClickListener 列出视图片段到片段事务