在前面的内容中,我们学习了很多SQL的高级语法,包括窗口函数,存储过程等。在这篇文章中,我们要学习一个很重要的概念,事务。
为了讲清楚事务,很多人拿银行转账来举例,不得不说这真的是一个非常恰当的例子。一个账户要增加对应的金额,另一个账户需要减少对应的金额。
这两个操作要么都成功,要么都失败,否则就会出现错误。
因为有这样的需求,所以数据库就提供了相应的机制,就是事务,即一串必须同时成功或同时失败的操作序列。
从事务的定义,我们可以看到事务的基础性质,即原子性,操作必须同时成功或失败,是作为一个整体来看待。
事务还有其他性质,分别是一致性、隔离性、持久性。
这几个性质中,持久性最容易理解,即事务提交后,即便崩溃了,数据库也能保证事务操作的有效性。一般是通过先写日志、后改数据库