当我尝试创建名称相同但签名不同的存储函数时:
CREATE FUNCTION `max`(a INT, b INT) RETURNS INT
BEGIN
IF a > b THEN RETURN a; ELSE RETURN b; END IF;
END
CREATE FUNCTION `max`(a DATE, b DATE) RETURNS DATE
BEGIN
IF a > b THEN RETURN a; ELSE RETURN b; END IF;
END
MySQL 给我一个错误:
FUNCTION max already exists
我真的必须为函数指定不同的名称吗,例如 max_tinyint
、max_int
、max_date
、max_datetime
等等?
如果我可以创建一个接受任意类型作为参数的函数,那就更容易了。
最佳答案
mysql 不支持函数重载。所以你唯一的方法就是创建具有不同名称的函数
UPD:是的,mysql 有 GREATEST()函数做你想做的事
关于mysql - 重载 MySQL 存储函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829940/