MySQL的事务
事务:要么都成果,要么都失败
即,在事务中的事件:
1、如果都成功了,就提交事务,被持久化(COMMIT; )
2、如果有一个失败了,就恢复到最初,回滚(ROLLBACK; )
account表如下:
id | 名字 | 钱数 |
---|---|---|
1 | A | 2000 |
2 | B | 10000 |
完整代码如下:(注意,这个代码不是能一下运行出的,只能一步步执行)
-- 模拟转账事务
SET autocommit = 0; -- 关闭自动提交
START TRANSACTION -- 开启一组事务
UPDATE account SET `钱数`=`钱数`-500 WHERE `名字`='A' -- A减500
UPDATE account SET `钱数`=`钱数`+500 WHERE `名字`='B' -- B加500
COMMIT; -- 提交事务,就被持久化了
ROLLBACK; -- 回滚
SET autocommit = 1; -- 恢复默认值