MySQL数据库中的事务

事务:

  • 当一个业务需要多个操作步骤(insert ino | update | delete from)时,只有所有步骤都完成才算完成,如果其中某条sql语句出错,则整个操作都退回。
  • 使用事务可以完成退回的功能,从而保证业务逻辑的正确性。
  • 事务的本质是:上锁

事务的四大特性(简称ACID):

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

能够使用事务的前提条件:

  • 表的类型必须是innodb或bdb类型

如何修改表的类型?

  • 第一步:查看表的创建语句
    show create table 表名;
  • 第二步:修改表名
    alter table 表名 engine=innodb;

事务操作步骤:

  • begein:开启事务,并在内存级临时表中进行增、删、改等操作
  • commit:将临时表中的数据更新到原表中,确认更改,释放锁
  • rollback:放弃begin后面的所有操作,释放锁

commit和rollback只能2选1

练习:

begin;
update stus set sname = '张三' where id = 1;
delete from stus where sname = '李四';
commit;或者rollback;

 

posted @ 2020-12-29 04:15  eliwang  阅读(94)  评论(0编辑  收藏  举报