一:事务:
(一)定义:将一堆SQL绑定在一起执行,要么全部执行成功,要么全部执行失败
(二)作用:
例子:
A-------->B
假如A转账到B,A成功转账B为100元,但是这时服务器坏了,那么请问这时B是1000,而A为900,这种情况在现实生活中是不可能发生的,这是由于在现实生活中转账的所有操作都是在事务中完成的,那么如果有一条没有成功执行,那么之前的所有操作都不会成功执行(回滚)
(三)四大特性:
1.原子性:我们在这里认为原子是不可分割的,那么我们认为事务也是不可分割的,要么都执行成功,要么都失败
2一致性:指的是业务数据在前后都是保持一致的(无论转账前还是转账后,总金额都是2000)
3隔离性:指的是多个事务是相互隔离开的,一个事务不会访问到另外一个正在执行的事务
例子:在转账时,如果A向B转账100,而这时服务器坏了,那么这时我们A为900,而B为1000,这时有另一个事务则是在查询A和B的金额总和,那么这时会发现是1900,这在现实生活中也是不可能发生的,这是由于在现实生活中,事务之间是隔离的。事务二是不可能会访问到事务一的,事务二要么看到事务完成前,要么看到事务完成后的
备注一:这里的数据如果隔离等级较低,那么事务二就真的有可能会访问到事务一
4持久性:事务一旦提交将会放在数据库中(保存到文件中),如果事务没有提交,那么数据就会保存到日志中