MySql - 创建存储函数并调用它

时间:2015-12-04 20:55:55

标签: mysql stored-functions database-management

我需要帮助创建这个特定的存储函数,并使用单个select语句调用它。以下是我的回答问题。我认为我的第一部分是正确的,但我不确定。有什么建议/意见吗?对于第二个问题(b部分),我错误地调用了该函数,并且无法按照问题/部分b中的说明显示它。有什么建议?我真的很感激你的帮助。

A部分)创建一个名为get_customer_balance的存储函数,该函数将通过传入会员编号从会员表中返回客户的余额。

我的回答:

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 ; 

Part B question

Membership Table. This is the original table of the problem (for reference guide)

1 个答案:

答案 0 :(得分:0)

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      |
+---------------+------------+

Create Proc and Functions

上的Mysql手册页

调用用户定义函数(UDF)就像调用任何内置函数一样。即使它涉及使用别名连接表(上面没有显示)。

一个更好的例子是有两个表的例子。一个membership表和一个需要求和的transaction表。但那不是你的架构。

你想看到这样的东西吗?