存儲(chǔ)過程while循環(huán) 為什么mysql的存儲(chǔ)過程調(diào)用一次會(huì)運(yùn)行多次?
為什么mysql的存儲(chǔ)過程調(diào)用一次會(huì)運(yùn)行多次?在sqlyog中,我調(diào)用一次存儲(chǔ)過程(輸入?yún)?shù)),然后在MySQL中執(zhí)行showfullprocesslist進(jìn)行檢查。發(fā)現(xiàn)有兩個(gè)連接同時(shí)執(zhí)行存儲(chǔ)過程中的
為什么mysql的存儲(chǔ)過程調(diào)用一次會(huì)運(yùn)行多次?
在sqlyog中,我調(diào)用一次存儲(chǔ)過程(輸入?yún)?shù)),然后在MySQL中執(zhí)行showfullprocesslist進(jìn)行檢查。發(fā)現(xiàn)有兩個(gè)連接同時(shí)執(zhí)行存儲(chǔ)過程中的語句(其他連接不可能出現(xiàn)這些SQL語句),執(zhí)行后的數(shù)據(jù)是正常數(shù)據(jù)的兩倍。然后在存儲(chǔ)過程中反轉(zhuǎn)SQL語句(例如,add to subtract),然后執(zhí)行它。發(fā)現(xiàn)數(shù)據(jù)恢復(fù)正常。
什么是存儲(chǔ)過程?用什么來調(diào)用?
存儲(chǔ)過程是預(yù)編譯的SQL語句,其優(yōu)點(diǎn)是允許模塊化設(shè)計(jì)。也就是說,它只需要?jiǎng)?chuàng)建一次,然后就可以在程序中多次調(diào)用。如果一個(gè)操作需要多次執(zhí)行SQL,那么使用存儲(chǔ)過程比使用簡單的SQL語句要快??梢允褂妹顚ο笳{(diào)用存儲(chǔ)過程。