MySQL高级之事务

1、事务

当一个业务逻辑须要多个sql完成时,若是其中某条sql语句出错,则但愿整个操做都退回mysql

使用事务能够完成退回的功能,保证业务逻辑的正确性sql

事务四大特性(简称ACID)数据库

  • 原子性(Atomicity):事务中的所有操做在数据库中是不可分割的,要么所有完成,要么均不执行
  • 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致
  • 隔离性(Isolation):事务的执行不受其余事务的干扰,事务执行的中间结果对其余事务必须是透明的
  • 持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即便数据库出现故障

要求:表的类型必须是innodb或bdb类型,才能够对此表使用事务spa

查看表的建立语句code

show create table students;

修改表的类型blog

alter table '表名' engine=innodb;

事务语句事务

开启 begin;
提交 commit;
回滚 rollback;

2、示例1

  • 步骤1:打开两个终端,链接mysql,使用同一个数据库,操做同一张表
  • 终端1:
    select * from students;
    ------------------------
    终端2:
    begin;
    insert into students(sname) values('张飞');
  • 步骤2
    终端1:
    select * from students;
  • 步骤3
    终端2:
    commit;
    ------------------------
    终端1:
    select * from students;

3、示例2

  • 步骤1:打开两个终端,链接mysql,使用同一个数据库,操做同一张表
    终端1:
    select * from students;
    ------------------------
    终端2:
    begin;
    insert into students(sname) values('张飞');
  • 步骤2
    终端1:
    select * from students;
  • 步骤3
    终端2:
    rollback;
    ------------------------
    终端1:
    select * from students;
相关文章
相关标签/搜索