• mysql 事务


    事务

    # 事务:通常一些业务需要多条sql参与,参与的sql会形参一个执行整体,该整体我们就称之为 事务
    # 简而言之:事务 - 就是保护多条执行的sql语句
    # 比如:转账就是一个事务:从一个用户将资金转出,再将资金转入到另一个用户
    
    """ 事务的四大特性
    1.原子性:事务是一组不可分割的单位,数据库的完整性:如果数据库在某一时间点下,所有的数据都符合所有的约束,则称数据库为完整性的状态要么同时成功,要么同时不成功, 相当于and语句,前后语句都要成功 
    
    2.一致性:事物前后的数据完整性应该保持一致,执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
    3.隔离性:事物的隔离性是指多个用户并发访问数据时,一个用户的事物不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离
    4.持久性:持久性是指一个事物一旦被提交,它对数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响
    """
    
    # mysql中事务的执行
    create table bank(
    	id int,
        name varchar(16),
        money decimal(65, 2)
    );
    insert into bank values(1, 'Tom', 10), (2, "Bob", 10);
    
    # 假设出现以下执行情况
     # 步骤为  两个事务处理  一方更改完  数据
    # 没有事务支持情况下,Tom的钱就丢了
    update bank set money=money-1 where name='Tom';
    update bank set money=money+1 where name='ruakei';
    
    # 将两条sql看做事务处理
    这个东西是不会出错的 因为 将资金转出  转入数据库都是没有变化的 检测这两个事都成功了 才会提交到数据库
    # 开启事务
    begin;
    update bank set money=money-1 where name='Tom';
    update bank set money=money+1 where name='ruakei'; #列表不存在的值
    
    # 确认无误,提交事务
    commit;
    
    # 确认有误,回滚
    rollback;
    
  • 相关阅读:
    Game的基本元素.[小糊涂的灵感]
    J2ME图书介绍 [小糊涂的灵感]
    j2me 这个论坛好一点.[小糊涂的灵感]
    Frame rate test for tilebased games 测试结果.[小糊涂的灵感]
    源码方式在ubuntu系统上安装ruby1.9.2
    模块全解======>>ruby的类是单继承生物、所以出现了module、实现了多继承
    在ubuntu下安装rails3.0
    在ubuntu下编写运行shell脚本
    在linux下开远程桌面访问windows的解决方法
    在命令行中打开sqlite的数据库
  • 原文地址:https://www.cnblogs.com/jhpy/p/11599703.html
Copyright © 2020-2023  润新知