行级锁(悲观锁)
select 语句后添加for update关键字
悲观锁:事务必须排队进行,数据锁住了,不允许并发.
事务结束之前其它事务不可以对选定的行进行修改
select * from emp where job='manager' for update;
乐观锁
支持并发,事务不需要排队,但是需要一个版本号
事务1 ---> 开始读取到版本号为1.1
事务2 ---> 开始读取到版本号为1.1
其中事务1先修改了,修改之后看版本号仍是1.1,于是提交修改的数据,将版本号修改为1.2
其中事务2后修改的,修改后准备提交时检查版本号发现修改为1.2,与最初的不一致,则回滚事务。