mysql之事务

一:事务初识

数据库事务通常指对数据库进行的一个操作过程。有两个目的

  • 第一个是为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法;
  • 第二个是当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。

二:事务的特性

  • 原子性(Atomicity):事务必须是原子工作单元,一个事务中的所有语句,应该做到:要么全做,要么一个都不做
  • 一致性(Consistency):让数据保持逻辑上的【合理性】,比如:小明给小红打10000块钱,既要让小明的账户减少10000,又要让小红的账户上增加10000块钱;
  • 隔离性(Isolation):如果多个事务同时并发执行,但每个事务就像各自独立执行一样。
  • 持久性(Durability):一个事务执行成功,则对数据来说应该是一个明确的硬盘数据更改(而不仅仅是内存中的变化)。
    使用事务,表的引擎要为innodb引擎

三:事务的开启与提交:

  • 事务的开启:begin; start transaction;
  • 事务的提交:commit;
  • 事务的回滚:rollback;
    案例演示:在这里插入图片描述

四:开启autocommit(临时生效):

  • OFF(0):表示关闭
  • ON (1):表示开启
    当set autocommit = 0时,自动提交被临时关闭,如果想要进行insert/update等操作,需要在控制台手动输入commit进行提交,才会在表中查看新增/更新后的数据。
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | OFF |
+---------------+-------+

mysql> set autocommit=1;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | ON |

五:开启autocommit(永久生效):

修改配置文件:vi /etc/my.cnf 在[mysqld]下面加上:autocommit=1,重启服务才会生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹意雅韵(马)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值