MySql - 创建存储函数并调用它
MySql - Creating Stored Function and Calling It
我需要帮助创建这个特定的存储函数并使用单个 select 语句调用它。以下是我回答的问题。我想我的第一部分是正确的,但我不确定。有 suggestions/advice 吗?对于第二个问题(b 部分),我错误地调用了该函数,无法使其按 question/part b 中指定的方式显示。有什么建议吗?非常感谢您的帮助。
A 部分)创建一个名为 get_customer_balance 的存储函数,它将通过传入会员编号 return 会员 table 的客户余额。
我的回答:
DELIMITER $$
CREATE FUNCTION get_customer_balance (membershipNo INT)
RETURNS dec
DETERMINISTIC
BEGIN
DECLARE CustBal dec;
SET CustBal = 0;
SELECT balance INTO CustBal
FROM membership
WHERE membership_id = membershipNo;
RETURN CustBal;
END$$
DELIMITER ;
Membership Table. This is the original table of the problem (for reference guide)
create table membership
( membership_id int primary key,
balance decimal(10,2) not null
);
insert membership(membership_id,balance) values (1,1),(102,11),(103,109.25);
select membership_id,format(get_customer_balance(membership_id),2) as theBalance
from membership
where membership_id=102;
+---------------+------------+
| membership_id | theBalance |
+---------------+------------+
| 102 | 11.00 |
+---------------+------------+
Mysql Create Proc and Functions
上的手册页
调用您的用户定义函数 (UDF) 就像调用任何内置函数一样。即使它涉及在 tables 上加入别名(上面没有显示)。
一个更好的例子是有两个 table 的例子。一个membership
table,一个transaction
table需要求和。但那不是你的模式。
你想看这样的东西吗?
我需要帮助创建这个特定的存储函数并使用单个 select 语句调用它。以下是我回答的问题。我想我的第一部分是正确的,但我不确定。有 suggestions/advice 吗?对于第二个问题(b 部分),我错误地调用了该函数,无法使其按 question/part b 中指定的方式显示。有什么建议吗?非常感谢您的帮助。
A 部分)创建一个名为 get_customer_balance 的存储函数,它将通过传入会员编号 return 会员 table 的客户余额。
我的回答:
DELIMITER $$
CREATE FUNCTION get_customer_balance (membershipNo INT)
RETURNS dec
DETERMINISTIC
BEGIN
DECLARE CustBal dec;
SET CustBal = 0;
SELECT balance INTO CustBal
FROM membership
WHERE membership_id = membershipNo;
RETURN CustBal;
END$$
DELIMITER ;
Membership Table. This is the original table of the problem (for reference guide)
create table membership
( membership_id int primary key,
balance decimal(10,2) not null
);
insert membership(membership_id,balance) values (1,1),(102,11),(103,109.25);
select membership_id,format(get_customer_balance(membership_id),2) as theBalance
from membership
where membership_id=102;
+---------------+------------+
| membership_id | theBalance |
+---------------+------------+
| 102 | 11.00 |
+---------------+------------+
Mysql Create Proc and Functions
上的手册页调用您的用户定义函数 (UDF) 就像调用任何内置函数一样。即使它涉及在 tables 上加入别名(上面没有显示)。
一个更好的例子是有两个 table 的例子。一个membership
table,一个transaction
table需要求和。但那不是你的模式。
你想看这样的东西吗?