博客说明程序员
文章所涉及的资料来自互联网整理和我的总结,意在于我的学习和经验汇总,若有什么地方侵权,请联系本人删除,谢谢!
若是一个包含多个步骤的业务操做,被事务管理,那么这些操做要么同时成功,要么同时失败sql
1. 开启事务: start transaction; 2. 回滚:rollback; 3. 提交:commit;
CREATE TABLE account ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), balance DOUBLE ); -- 添加数据 INSERT INTO account (NAME, balance) VALUES ('zhangsan', 1000), ('lisi', 1000); SELECT * FROM account; UPDATE account SET balance = 1000; -- 张三给李四转帐 500 元 -- 0. 开启事务 START TRANSACTION; -- 1. 张三帐户 -500 UPDATE account SET balance = balance - 500 WHERE NAME = 'zhangsan'; -- 2. 李四帐户 +500 -- 出错了... UPDATE account SET balance = balance + 500 WHERE NAME = 'lisi'; -- 发现执行没有问题,提交事务 COMMIT; -- 发现出问题了,回滚事务 ROLLBACK;
存在问题:数据库
隔离级别:安全
read uncommitted:读未提交学习
read committed:读已提交 (Oracle)code
repeatable read:可重复读 (MySQL默认)事务
serializable:串行化字符串
数据库查询隔离级别:博客
数据库设置隔离级别:it
感谢
黑马程序员以及勤劳的本身