gpt4 book ai didi

mysql - MySQL 中的自定义函数

转载 作者:可可西里 更新时间:2023-11-01 07:37:14 24 4
gpt4 key购买 nike

我正在尝试在 MySQL 中创建一个简单的自定义函数,它采用 2 个值(id int,currencyValue double),根据 id 在另一个表中查找一个值并返回 currencyValue*rate。

这是我的伪代码,它无法让我接近这个。令人惊讶的是,谷歌上也缺乏这方面的例子。

DROP FUNCTION IF EXISTS ConvertCurrency
DROP FUNCTION IF EXISTS F_ConvertCurrency //
CREATE FUNCTION F_ConvertCurrency(PID INT, C_VALUE DOUBLE)
RETURNS DOUBLE
BEGIN

DECLARE Currency_Rate DOUBLE;

SET Currency_Rate = SELECT `Rate` FROM `Currencies` WHERE `ID` = PID;
RETURN Currency_Rate*C_VALUE;
END;//

我收到“您的代码中有错误……”这对我没有任何帮助。我看过其他带有 DELMITER 关键字的函数示例,但不知道这意味着什么。

最佳答案

您应该暂时将 DELIMITER 设置为分号以外的其他内容(我使用 $$),以便在存储函数的主体中使用分号定义。

您可以使用 SELECT ... INTO ... 来设置本地 Currency_Rate 变量。我建议在变量名称前加上 v_ 前缀,以表示它是一个局部变量而不是表列这一事实。

这是一个使用您的代码的示例:

DELIMITER $$

DROP FUNCTION IF EXISTS ConvertCurrency $$
DROP FUNCTION IF EXISTS F_ConvertCurrency $$
CREATE FUNCTION F_ConvertCurrency(PID INT, C_VALUE DOUBLE)
RETURNS DOUBLE
BEGIN

DECLARE v_Currency_Rate DOUBLE;

SELECT `Rate`
INTO v_Currency_Rate
FROM `Currencies`
WHERE `ID` = PID;

RETURN v_Currency_Rate*C_VALUE;
END $$

DELIMITER ;

关于mysql - MySQL 中的自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21025825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com