mysql悲觀鎖的方法:1、首先利用【select … for update】加鎖,操作完成后使用commit來(lái)釋放鎖;然后innodb引擎來(lái)默認(rèn)行級(jí)鎖;最后查不到數(shù)據(jù)時(shí),則不鎖表即可。
mysql悲觀鎖的方法:
1、開(kāi)始事務(wù)
begin;/begin?work;/start?transaction;?(三者選一就可以)
2、查詢出商品信息
select?status?from?table?where?id=1?for?update;
3、根據(jù)商品信息生成訂單
insert?into?table111?(id,goods_id)?values?(null,1);
4、修改商品status為2
update?table?set?status=2?where?id=1;
5、提交事務(wù)
commit;/commit?work;?(任選一種釋放鎖)
總結(jié):
1、實(shí)現(xiàn)悲觀鎖利用select … for update加鎖, 操作完成后使用commit來(lái)釋放鎖;
2、innodb引擎時(shí), 默認(rèn)行級(jí)鎖, 當(dāng)有明確字段時(shí)會(huì)鎖一行, 如無(wú)查詢條件或條件;
? ? 字段不明確時(shí), 會(huì)鎖整個(gè)表,條件為范圍時(shí)會(huì)鎖整個(gè)表;
3、查不到數(shù)據(jù)時(shí), 則不會(huì)鎖表。
相關(guān)學(xué)習(xí)推薦:mysql視頻教程
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦