我是 MySQL 新手。我已经开始创建一个包含客户表的数据库,该表有两个过程。
getprocedure12
当输入客户 ID 时返回客户姓名getcusage
,输入 ID 时返回客户的年龄。
所以我想创建第三个过程来调用这两个过程,当给定 id 时,它将输出姓名和年龄。
你能帮我弄清楚如何获得我想要的输出吗?
CREATE PROCEDURE `nestedprocedurecustomers` (IN ID INT)
BEGIN
DECLARE (customername varchar(20), customerage INT);
CALL getcustomername12( cust_id, customername);
CALL getcustage( cust_id, customerage);
WHERE cust_id= ID;
END
最佳答案
您不能在查询之外使用 WHERE
。不需要 cust_id
变量,只需使用 id
。
最后,由于此过程没有任何 OUT
参数,因此您需要使用 SELECT
返回内部调用返回的变量。
CREATE PROCEDURE `nestedprocedurecustomers` (IN ID INT)
BEGIN
DECLARE customername varchar(20);
DECLARE customerage INT;
CALL getcustomername12(id, customername);
CALL getcustage(id, customerage);
SELECT customername, customerage;
END
关于mysql - mysql 上的嵌套过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51370492/