刚开始我对mysql的事务处理并不是多了解。就在搜索了一番,发现个通病:
大部分用来讲事务的例子都是用银行转账和购买图书,让人觉得事务除了处理这两种东西别无他用。
通过我自己的操作加理解如下:
事务就是一些SQL语句,它们是一个整体,要么全部执行,要么全不执行。
我用到事务是因为兑换礼物:
兑换礼物要扣除礼物的数目,同时减掉用户的积分,两个要么都执行,要么都不执行,这是一个事务。当然,也会发生竞争的现象,但是实现了这个事务,竞争就不会发生问题了。所以说竞争只是事务的一个子类,而不能说是事务。
下面用例子来说明一下:
1 | //查看礼物是否有剩余的代码 |