假设一个银行系统,用户1给用户2转账500,流程如下:
1. 检查用户1的余额是否大于500
2. 用户1减500
3. 用户2加500
但是,如果执行完第2步,就出现故障了怎么办? 这是绝对不能允许的。第2步和第3步必须同时成功,或者同时失败,----事务
事务:它是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位。
只要开启 start transaction,之后的语句在 commit之前,都不会更改数据库。
假设一个银行系统,用户1给用户2转账500,流程如下:
1. 检查用户1的余额是否大于500
2. 用户1减500
3. 用户2加500
但是,如果执行完第2步,就出现故障了怎么办? 这是绝对不能允许的。第2步和第3步必须同时成功,或者同时失败,----事务
事务:它是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位。
只要开启 start transaction,之后的语句在 commit之前,都不会更改数据库。