調(diào)用 mysql 存儲(chǔ)過(guò)程的方法有:call 語(yǔ)句execute 語(yǔ)句預(yù)處理語(yǔ)句,分步驟為:a. 準(zhǔn)備預(yù)處理語(yǔ)句b. 設(shè)置參數(shù)值c. 執(zhí)行預(yù)處理語(yǔ)句d. 清理預(yù)處理語(yǔ)句
MySQL 存儲(chǔ)過(guò)程的調(diào)用方法
MySQL 存儲(chǔ)過(guò)程可以通過(guò)以下方法調(diào)用:
1. CALL 語(yǔ)句
<code class="sql">CALL 存儲(chǔ)過(guò)程名(參數(shù)1, 參數(shù)2, ...)</code>
登錄后復(fù)制
2. EXECUTE 語(yǔ)句
<code class="sql">EXECUTE 存儲(chǔ)過(guò)程名 USING 參數(shù)1, 參數(shù)2, ...</code>
登錄后復(fù)制
3. 預(yù)處理語(yǔ)句
<code class="sql">-- 準(zhǔn)備預(yù)處理語(yǔ)句 PREPARE stmt FROM 'CALL 存儲(chǔ)過(guò)程名(?)'; -- 設(shè)置參數(shù) SET @param1 = 值; -- 執(zhí)行預(yù)處理語(yǔ)句 EXECUTE stmt USING @param1; -- 清理預(yù)處理語(yǔ)句 DEALLOCATE PREPARE stmt;</code>
登錄后復(fù)制
詳細(xì)介紹:
CALL 語(yǔ)句:最常用的調(diào)用方法,直接使用 CALL 關(guān)鍵字后跟存儲(chǔ)過(guò)程名和參數(shù)。
EXECUTE 語(yǔ)句:類似于 CALL 語(yǔ)句,但允許在 USING 子句中指定參數(shù)值,提高可讀性。
預(yù)處理語(yǔ)句:首先使用 PREPARE 語(yǔ)句準(zhǔn)備預(yù)處理語(yǔ)句,然后使用 EXECUTE 語(yǔ)句執(zhí)行該語(yǔ)句,并設(shè)置參數(shù)。這種方法性能更高,因?yàn)?MySQL 可以在需要時(shí)重新使用預(yù)處理語(yǔ)句。
選擇調(diào)用方法:
對(duì)于簡(jiǎn)單的存儲(chǔ)過(guò)程調(diào)用,CALL 語(yǔ)句通常就足夠了。
對(duì)于需要多次調(diào)用具有相同參數(shù)的存儲(chǔ)過(guò)程,可以使用預(yù)處理語(yǔ)句來(lái)提高性能。
對(duì)于需要在運(yùn)行時(shí)動(dòng)態(tài)設(shè)置參數(shù)的存儲(chǔ)過(guò)程,EXECUTE 語(yǔ)句更合適。