MySQL的存储过程是一种预编译的SQL代码集合,可以通过调用执行。带参数的存储过程允许你在调用时传递参数,从而实现更灵活的数据操作。
MySQL存储过程支持以下几种类型的参数:
带参数的存储过程常用于以下场景:
以下是一个简单的MySQL带参数存储过程实例,用于插入一条用户记录:
DELIMITER //
CREATE PROCEDURE InsertUser(
IN p_username VARCHAR(50),
IN p_email VARCHAR(100),
OUT p_result INT
)
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
SET p_result = -1; -- 插入失败
END;
INSERT INTO users (username, email) VALUES (p_username, p_email);
SET p_result = LAST_INSERT_ID(); -- 插入成功,返回新插入记录的ID
END //
DELIMITER ;
SET @result = 0;
CALL InsertUser('JohnDoe', 'john@example.com', @result);
SELECT @result; -- 返回新插入记录的ID或-1(插入失败)
SHOW PROCEDURE STATUS
查看存储过程列表。DECLARE HANDLER
捕获并处理SQL异常。领取专属 10元无门槛券
手把手带您无忧上云