mysql的存儲(chǔ)過程會(huì)自動(dòng)開啟一個(gè)事務(wù)嗎有一段代碼,這段代碼開啟了事務(wù),整個(gè)請求就開啟了這一個(gè)事務(wù),這個(gè)事務(wù)中間有調(diào)用一個(gè)存儲(chǔ)過程,這個(gè)存儲(chǔ)過程就是更新了一些數(shù)據(jù),存儲(chǔ)過程里面是沒有顯示開啟事務(wù)的,就begin,end就完了。這個(gè)事務(wù)里面有更新一條數(shù)據(jù),執(zhí)行完后,代碼里面又有個(gè)操作去更新存儲(chǔ)過程里面剛剛更新過了的同一條數(shù)據(jù),這里就發(fā)生了鎖等待超時(shí)了。我想問的是,調(diào)用執(zhí)行存儲(chǔ)過程,存儲(chǔ)過程里面沒有開啟事務(wù),它會(huì)自動(dòng)開啟一個(gè)新的事務(wù)嗎?而且沒有自動(dòng)提交。導(dǎo)致后面操作相同數(shù)據(jù)的時(shí)候拿不到鎖。我通過查看MySQL的鎖情況和代碼測試,發(fā)現(xiàn)確實(shí)是存儲(chǔ)過程開啟了一個(gè)新的事務(wù),執(zhí)行完后也沒有提交,一直掛在那里。
mysql的存儲(chǔ)過程會(huì)自動(dòng)開啟一個(gè)事務(wù)嗎?
qq_笑_17
2018-07-03 11:33:56