MySQL 使用现有 table 创建函数语句

MySQL Create function statement with existing table

我以前问过这些问题,但我认为最好问一个新问题,因为我的旧问题似乎略有不同。我没有提到现有的 table 和那里的输入。

我有一个 table 'item',其中包含所有数据,例如每个项目的价格和库存。我的函数应从实际库存和商品价格中获取输入,并使用公式库存*价格将其转换为商品值。如果 itemvalue 为负,则输出应为 0,否则应返回正值。

CREATE function item_value (inventory int UNSIGNED, price decimal(8,2)) RETURNS DECIMAL(8,2)
BEGIN 
 IF inventory*price < 0 THEN 
  SET itemvalue = 0
 ELSE 
  SET itemvalue = inventory*price
END IF;

函数签名:

item_value (inventory int UNSIGNED, price decimal(8,2))

Table 项:

在我看来,您的功能不起作用,因为您没有 return 任何东西。我对吗?您应该添加 return 语句...

CREATE FUNCTION item_value (inventory INT UNSIGNED, price DECIMAL(8,2)) RETURNS DECIMAL(8,2)
BEGIN 
    DECLARE itemvalue DECIMAL(8,2) DEFAULT 0.0;

    IF inventory*price < 0 THEN 
        SET itemvalue = 0
    ELSE 
        SET itemvalue = inventory*price
    END IF;

    RETURN (itemvalue);
END