事务的介绍
事务就是用户定义的一系列执行SQL语句的操作,这些操作要么完全的执行,要么完全的不执行,他是一个不可分割的工作执行单元.
事务的使用场景
在日常生活中,如果我们需要银行转账,银行转账操作背后就是需要执行多个SQL语句,加入这些SQL语句执行到一半突然停电,那么就会导致这个功能只完成一半,这种情况不允许出现,要想解决这个问题就需要事务来完成.
事务的四大特性
1.原子性
2.一致性
3.隔离性
4.持久性
原子性:一个事务必须被视为一个不可分割的最小工作单位,整个事务的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不能只执行其中一部分这就是事务原子性.
一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态.
隔离性:一个事务所作的操作在提交事务之前,对于其他事务来说是不可见的
持久性:一旦事务提交,其所作的修改就会永久保存到数据库
事务的使用
在使用事务之前,要确保表的保存引擎是INNODB类型,只有这个类型才能使用事务,mySQL数据库默认保存引擎是.
表的引擎说明:
就是提供存储数据一种机制.
事务的执行
开启事务:begin;
开启事务后执行修改命令,变更数据会保存到mysql服务端的缓存文件中,而不维护到物理表中
mysql数据库默认采用自动提交的模式,如果没有显示开启事务那么每条sql语句都会被当作一个事务执行提交的操作.
提交事务:commit;
将本地缓存文件中的数据提交到物理表中,完成数据的更新.
回滚事务:rollback;
放弃本地缓存文件中的缓存数据,表示回到开始事务前的状态.
注:pymysql 里面 conn.commit()是提交事务,conn.rollback()是回滚事务.