欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL数据库之事务

程序员文章站 2024-01-14 09:46:58
...

事务:一组连续不可分割的SQL,要求要么全部成功要么全部撤销。
注意:MySQL的表类型必须是InnoDB,才能支持事务。

为什么需要事务???

事务是数据库商用最基本最重要的特点。
事务是保证数据库数据完整性和安全性最重要的技术。
事务是要求一组连续的SQL语句要么全部成功执行,要么数据返回到开启事务前的状态。不允许部分SQL语句成功,部分不成功。

start transaction;
insert 语句
delete 语句
update 语句
select 语句
commit;

其中,start transaction是开启事务commit是提交,表示一些列sql语句成功执行,提交到数据库。

start transaction;
insert 语句
delete 语句
update 语句
select 语句
rollback;

其中,start transaction是开启事务rollback是提交,表示一些列sql语句没有全部成功执行,撤销所有的改动。


查看当前的模式是否为自动提交模式:

show variables like '%autocommit';   //Value=ON为自动提交  OFF为手动提交

开启自动提交模式:

set autocommit=1;

关闭自动提交模式:

set autocommit=0;

事务注意事项:(事务要求满足4点(简称ACID))

1.原子性(Atomicity):事务中的多个操作,不可分割,要么都成功,要么都失败。
2.一致性(Consistency): 事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变。
3.隔离性(Isolation):事务必须与其他事务进行的数据更改相隔离。这意味着没有其他操作可以改变中间态(没有提交的)的数据。为了避免中间态数据被更改,事务必须要么等待来自其他事务的更改被提交,要么只能查看到处于上一个提交状态的数据。
4.持久性(Durability):在一个事务完成,这些更改的数据将永久存在。

持久化: 把内存里面的数据,同步到可掉电设备中