zoukankan      html  css  js  c++  java
  • Mysql事务处理

    Mysql中MyISAM存储引擎不支持事务,InnoDB和BDB支持事务

    事务是一组连续的数据库操作,而这组操作是不可分割的,也就是说这组操作要么全执行成功,要不就全部执行失败(实际不执行)。

    事务有以下四个标准属性的缩写ACID,通常被称为:

    原子性: 确保工作单元内的所有操作都成功完成,否则事务将被中止在故障点,和以前的操作将回滚到以前的状态。

    一致性: 确保数据库正确地改变状态后,成功提交的事务。

    隔离性: 使事务操作彼此独立的和透明的。

    持久性: 确保提交的事务的结果或效果的系统出现故障的情况下仍然存在。

     MYSQL的事务处理主要有两种方法。
       1、用begin,rollback,commit来实现
           begin 开始一个事务
           rollback 事务回滚
           commit  事务确认
       2、直接用set来改变mysql的自动提交模式
           MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
           set autocommit=0  禁止自动提交
           set autocommit=1 开启自动提交
           来实现事务的处理。
    但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!

    走一遍:

    先新建一个innodb表

    create table test(
    id int(9)
    )ENGINE=INNODB;

    操作:

    begin;
    insert into test value(1);
    insert into test value(2);
    commit;

    测试一下

    begin;
    insert into test value(3);
    select * from test;
    (此时结果中有3);
    rollback;
    select * from test;
    (此时结果中无3);
  • 相关阅读:
    小程序官方请求封装
    小程序天/小时/分秒倒计时封装
    小程序不定数量左右滑动中间放大轮播图效果
    小程序换行符检测换行
    小程序点击图片重新排序写法
    基于webuploader.js的单图片上传封装
    VMware Fusion 11 序列号
    Ionic 4 beta + Capacitor beta 尝鲜
    C语言学习笔记之动态分配数组空间
    C语言学习笔记之获取文件长度
  • 原文地址:https://www.cnblogs.com/orlion/p/4801423.html
Copyright © 2011-2022 走看看