zoukankan      html  css  js  c++  java
  • MySQL的事务

    MySQL中事务是一个最小的不可分割的工作单元,事务能保证一个业务的完整性

    一个业务中有多条sql语句,这些sql语句必须同时成功或同时失败,这时需要要事务来保证这个要求。

    例如:a从自己的银行卡上转100给b

    update user set money=money-100 where name='a';

    update user set moeny=money+100 where name='b';

    这两个sql语句必须同时成功或同时失败,这就需要事务

    MySQL里是自动开启事务和自动提交数据的,这样每执行一个sql语句都会将数据提交到数据库中,这样就完成一个事务

    提交到数据库中的记录是不能撤销的,这样如果后面的sql语句执行不了,前面的sql就不能撤回了。

    我们可以关闭自动开启事务和自动提交数据,这样我们可以设置一个事务里有多个sql语句,在它们全部执行完时,在向数据库提交数据,这样就能解决sql多个语句同时成功的操作

    撤销未提交的sql操作为 rollback

    关闭自动开启事务和自动提交数据   set autocommit =0;

    开启事务:begin/start transaction;

    手动提交数据  :commit

    事例:

     手动设置事务,关闭自动提交数据功能,我们在cmd上进行的多个sql操作不会将数据提交到数据库中 手动开启事务  begin;

    我们在另一个cmd中查看数据库数据没有受其影响

     我们手动提交数据commit

     这时cmd中的操作记录才被传到数据库,在没有提交前,一个rollback就可以撤销这个事务中所有的sql语句

    提交后,数据库才会将库中的数据修改。

    事务的四大特性

    1:原子性   事务是最小单位,不可拆分

    2:一致性   事务中sql语句必须同时成功或同时失败

    3:隔离性   不同的事务是不会相互影响的

    4:持久性   事务完成提交数据后不能再撤回了。

  • 相关阅读:
    C#数组
    找不到命名空间命名空间:System.Windows.Forms
    WebService 的创建,部署和使用
    动态调用webservice时 ServiceDescriptionImporter类在vs2010无法引用的解决方法
    SQL语句新建表,同时添加主键、索引、约束
    SQLServer Ansi_Padding的用法
    浅析jQuery删除节点的三个方法
    C# JSON 序列化和反序列化——JavaScriptSerializer实现
    命令行启动tomcat,怎么配置
    ojective-c convert to pascal pattern
  • 原文地址:https://www.cnblogs.com/zhangyang4674/p/11601425.html
Copyright © 2011-2022 走看看