事务: 一组SQL操作,要么同时成功,要么同时失败。
在实际的业务开发中,有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次 访问数据库的操作视为一个整体来执行,要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败,就进行事务的回滚,所有的SQL语句全部执行失败。 例如: jack给tom转账,jack账号减钱,tom账号加钱
数据库中操作:
回滚点
概述:在某些成功的操作完成之后,后续的操作有可能成功有可能失败,但是不管成功还是失败,前面操作都已经成功, 可以在当前成功的位置设置一个回滚点。可以供后续失败操作返回到该位置,而不是返回所有操作,这个点称之为 回滚点。
savepoint 回滚点名字
回到回滚点语法:
rollback to 回滚点名字
Start transaction;
Sql1
Sql2;
Savepoint aaa;
Sql3
...
Sqln
Rollback to aaa
Commit;
事务的四大特性(ACID)
事务特性 含义
原子性
(Atomicity) 事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性
(Consistency) 事务前后数据的完整性必须保持一致
隔离性
(Isolation) 是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个 并发事务之间数据要相互隔离,不能相互影响。
持久性
(Durability) 指一个事务一旦被提交(commit),它对数据库中数据的改变就是永久性的,接下来即使数据库发 生故障也不应该对其有任何影响