zoukankan      html  css  js  c++  java
  • 事务

    什么是事务

    事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。
    

    事务的4大特性

    原子性 
    	其对数据的修改,要么全部成功,要么全部都不成功。
    一致性 
    	事务开始到结束的时间段内,数据都必须保持一致状态。
    隔离性 
    	数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的"独立"环境执行。
    持久性 
    	事务完成后,它对于数据的修改是永久性的,即使出现系统故障也能够保持。
    
    我们可以在mysql事务处理过程中定义保存点(SAVEPOINT),然后回滚到指定的保存点前的状态。
        定义保存点,以及回滚到指定保存点前状态的语法如下。
        1.定义保存点---SAVEPOINT 保存点名;
        2.回滚到指定保存点---ROLLBACK TO SAVEPOINT 保存点名:
    

    实列 开启一个事务

    开启事务,给数据加锁
    # begin;#开始
    # select id from t1 where name = 'alex' for update;
    # update t1 set id = 2 where name = 'alex';
    # commit;#结束
    

    实列 开启回滚

    mysql> BEGIN; -- 或者start transaction;#开启事务
    mysql> INSERT INTO user VALUES ('3','one','0','');#向表user中插入2条数据
    mysql> INSERT INTO user VALUES ('4,'two','0','');#向表user中插入2条数据
    mysql> select * from user;#查询user表
    mysql> SAVEPOINT test;#指定保存点,保存点名为test
    mysql> INSERT INTO user VALUES ('5','three','0','');#向表user中插入第3条数据
    mysql> select * from user;#查表
    mysql> ROLLBACK TO SAVEPOINT test;#回滚到保存点test
    mysql> select * from user;#查表
    
  • 相关阅读:
    数据库Mysql给用户赋予操作表的权限
    C# log4net日志分等级打日志
    C# 将字符串转为函数名
    C# winform无法拖动控件
    C# 程序获取管理员方法
    C# 生成程序目录避免生成多余的XML和pdb
    C# 快速获取一个月的天数或最后一天
    正则
    C# 根据服务名打开所在文件夹
    330 div+css Experience
  • 原文地址:https://www.cnblogs.com/saoqiang/p/12386710.html
Copyright © 2011-2022 走看看