学习mysql事务

来源:互联网 发布:openstack nova源码 编辑:程序博客网 时间:2024/06/17 16:42

所谓的事务,用白话理解就是:
1、不止要执行一个步骤
2、这些步骤错一步,那么整个过程都返回
3、我在处理事务时,外界不能影响我

我们创建一张用户余额表

CREATE TABLE `balance` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `user_id` int(11) unsigned NOT NULL,  `money` decimal(10,2) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户余额表';

注意表引擎必须是InnoDB

一个重要属性 autocommit

我们可以通过一个语句来查询该属性值:

show VARIABLES like '%commit%';

这里写图片描述

我们mysql的autocommit属性是打开的。
这个属性的意义在哪里?
比如,我们插入一条数据:

insert into balance(`user_id`,`money`) values (3,19);#commit;

我们知道,我们平常并没有执行最后的commit语句,也成功插入了。
但是如果我们把autocommit的值设为OFF,就不会自动提交,就需要我们执行commit语句才执行。

mysql中开启事务

insert into `balance` (`user_id`,`money`) values(3,20);START TRANSACTION;insert into `balance` (`user_id`,`money`) values(3,44);commit;
原创粉丝点击