MySQL存儲過程是MySQL數(shù)據(jù)庫中的一種重要的程序設(shè)計(jì)方式,由一系列SQL語句組成,可以簡化復(fù)雜的數(shù)據(jù)庫操作過程,提高數(shù)據(jù)庫執(zhí)行效率。在存儲過程中,return語句常常用來返回函數(shù)計(jì)算結(jié)果或者執(zhí)行狀態(tài)。存儲過程的return語句一般有以下幾個使用場景。
1. 返回單個值
CREATE PROCEDURE get_total_num(INOUT total_num INT)
BEGIN
SELECT COUNT(*) INTO total_num FROM user;
RETURN total_num;
END;
2. 返回多個值
CREATE PROCEDURE get_admin_info(IN admin_id INT, OUT admin_name VARCHAR(20), OUT admin_email VARCHAR(30))
BEGIN
SELECT name, email INTO admin_name, admin_email FROM admin WHERE id=admin_id;
RETURN CONCAT(admin_name, admin_email);
END;
3. 返回執(zhí)行狀態(tài)
CREATE PROCEDURE update_user_info(IN user_id INT, IN user_name VARCHAR(20), IN user_age INT, OUT update_status INT)
BEGIN
UPDATE user SET name=user_name, age=user_age WHERE id=user_id;
SET update_status = ROW_COUNT(); #受影響的行數(shù)
RETURN update_status;
END;
在使用存儲過程的return語句時,需要注意的是:
1. return語句只能返回一個值,且必須在存儲過程體之內(nèi)使用。
2. 存儲過程的返回類型必須與return語句返回值類型一致。
3. 在存儲過程中,return語句一旦執(zhí)行,會立即結(jié)束程序執(zhí)行,并返回到調(diào)用程序。