什么是事务
数据库事务通常指对数据库进行读或写的一个操作过程。有两个目的,第一个是为数据库提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法;第二个是当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
事务的特性(ACID)
原子性(Atomicity):事务必须是原子工作单位,一个事务中的所有语句,要么全部执行,要么一个都不执行;
一致性(Consistency):让数据保持逻辑上的合理性,比如转账,一个账户减少金额,另一个账户必须增加对应的金额;
隔离性(Isolation):如果多个事务同时并发执行,每个事务就像各自独立执行一样;
持久性(Durability):一个事务执行成功,数据必须保存至磁盘(不仅仅是内存中的变化)。
注意:使用事务,表引擎要为innodb引擎
事务手动开启与提交
事务的开启:begin;
事务的提交:commit;
事务的回滚:rollback;
我们通常执行增删改sql后,立刻可以查询数据发生了变化,为什么呢?
mysql> show variables like 'autocommit';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit | ON |+---------------+-------+1 row in set, 1 warning (0.00 sec)
mysql默认自动开启了事务,OFF(0):表示关闭,ON(1):表示开启。
设置开启/关闭事务:
临时有效方法:
开启事务:set autocommit=1;
关闭事务:set autocommit=0;
永久有效:
修改配置文件,在[mysqld]下面加上:autocommit=1(或者0) ,然后重启服务生效。
最后修改时间:2020-07-01 12:54:24
文章转载自227decision,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




