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

标签 mysql stored-functions database-management

我需要帮助创建这个特定的存储函数并使用单个 select 语句调用它。以下是我的回答问题。我认为我的第一部分是正确的,但我不确定。有什么建议/建议吗?对于第二个问题(b 部分),我错误地调用了该函数,无法让它按问题/b 部分中指定的方式显示。有什么建议吗?我非常感谢您的帮助。

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

我的回答:

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)

最佳答案

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) 就像调用任何内置函数一样。即使它涉及到带有别名的表的联接(上面没有显示)。

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

你想看到这样的事情吗?

关于MySql - 创建存储函数并调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34097282/

相关文章:

mysql - 有没有办法使用 SQL 查询获取数据库中表的第一个条目?

php - 如何将 MySQL 查询转换为 Morris 图表可读的 json

mysql - SQL 嵌套 if 在具有存在并检查时间戳的函数内部

sql-server - SQL 错误 - 必须声明表变量 "@tablename"

sql-server-2008-r2 - SQL Server "Space Available"警报?

MySQL - DATE_ADD 月间隔

mysql - 如何在 MYSQL 中编写可以从触发器和存储函数调用的信号函数?

php - MySQL 社区服务器 - 它到底是什么?

zend-framework - zend 数据库迁移脚本

iphone - 无法从 Web 服务器上的 MySQL 检索日期到 iPhone