MySQL 存儲過程是一組預定義的 SQL 語句集合,它們可以被調用并執行。存儲過程可以接受參數并返回結果,可以在數據庫中存儲和重復使用,提高了數據庫的性能和安全性。
以下是 MySQL 存儲過程的基本用法:
CREATE PROCEDURE procedure_name([IN | OUT | INOUT] parameter_name data_type, ...)
BEGIN
-- 存儲過程的 SQL 語句
END;
DROP PROCEDURE IF EXISTS procedure_name;
CALL procedure_name([parameter_value, ...]);
IN:輸入參數,用于傳遞值給存儲過程。
OUT:輸出參數,用于將值從存儲過程傳遞給調用者。
INOUT:輸入輸出參數,既可以接收值,也可以將值傳遞給調用者。
可以使用常規的 SQL 語句,如 SELECT、INSERT、UPDATE 和 DELETE。
支持條件語句(IF、CASE)、循環語句(LOOP、WHILE)、異常處理(DECLARE HANDLER)等。
可以使用 OUT 或 INOUT 參數來返回存儲過程的結果。
存儲過程也可以使用 SELECT 語句返回結果集。
CREATE PROCEDURE get_customer(IN customer_id INT, OUT customer_name VARCHAR(255))
BEGIN
SELECT name INTO customer_name FROM customers WHERE id = customer_id;
END;
CALL get_customer(1, @customer_name);
SELECT @customer_name;
以上是 MySQL 存儲過程的基本用法,可以根據實際需求來定義和調用存儲過程,并根據業務邏輯來編寫相應的 SQL 語句。