MySQL 預存程序基本語法結構三大類,直接可複製修改使用。
DROP PROCEDURE IF EXISTS P_XSRBB;
CREATE PROCEDURE P_XSRBB()
BEGIN
DECLARE VP1 VARCHAR(20);
SET VP1 = '4';
SELECT VP1 FROM DUAL;
END;
CALL P_XSRBB();
DROP PROCEDURE IF EXISTS P_XSRBB;
CREATE PROCEDURE P_XSRBB(IN vp2 INT)
BEGIN
DECLARE VP1 VARCHAR(20);
SET VP1 = '4';
SELECT vp2 FROM DUAL; -- 使用輸入參數
END;
CALL P_XSRBB(3434);
CREATE PROCEDURE P_CALC(IN a INT, IN b INT, OUT sum INT, INOUT mul INT)
BEGIN
SET sum = a + b;
SET mul = mul * a * b; -- INOUT 需呼叫端初始化
END;
SET @mul = 2;
CALL P_CALC(3, 4, @sum, @mul);
SELECT @sum, @mul; -- 7, 24
DELIMITER $$ 變更結束符號,避免程序體內 ; 衝突,結束時改回 DELIMITER ;。DECLARE 僅能用於 BEGIN...END 區塊開頭,變數名建議加前綴避免與欄位名衝突。SELECT ... INTO @var 可將查詢結果賦值給使用者變數供後續使用。