MySQL 存儲過程是一段預編譯的 SQL 代碼集合,它可以被重復利用。在存儲過程中,我們還可以使用記錄集 (Recordset) 來保存查詢結果,供后續使用。
-- 創建存儲過程 CREATE PROCEDURE my_proc() BEGIN DECLARE my_id INT; DECLARE my_name VARCHAR(20); DECLARE my_age INT; -- 定義記錄集變量 DECLARE my_result CURSOR FOR SELECT id, name, age FROM my_table; -- 打開記錄集 OPEN my_result; -- 循環遍歷記錄集,將結果保存至變量中 read_loop: LOOP -- 讀取記錄集中的值 FETCH my_result INTO my_id, my_name, my_age; -- 判斷是否已經讀取完畢 IF (my_id IS NULL) THEN LEAVE read_loop; END IF; -- 處理查詢結果 -- ... END LOOP; -- 關閉記錄集 CLOSE my_result; END;
在以上代碼中,我們首先定義一個名為my_result
的記錄集變量,它將保存查詢結果并供后續使用。然后,我們通過OPEN
命令打開記錄集,根據需要遍歷它,并將查詢結果保存至相應變量中。最后,使用CLOSE
命令關閉記錄集。
使用記錄集,不僅可以簡化存儲過程的編寫,還可以提升查詢的性能。因為,它避免了多次執行相同的查詢。