是否可以使用未指定的返回类型在MySQL中定义存储函数?

时间:2009-09-09 12:38:39

标签: mysql stored-procedures types

我怀疑这个问题的答案是“不”,完全基于类型安全的概念,但无论如何我都要问。

如果我在MySQL中定义存储函数,通常CREATE语法的一部分定义函数的返回类型。

是否可以定义一个返回类型是两种可能类型之一,具体取决于结果,但调用者不知道?具体来说,我有兴趣根据返回的值指定具有两个不同精度的DECIMAL类型,这样在使用它们的任何地方我都不需要CAST这些值。

我知道我可以明确地使用,例如CASECAST来更改存储过程或常规语句的精度,但我想将该代码抽象为存储功能

1 个答案:

答案 0 :(得分:1)

我的回答是“为什么?”,而不是“不!”。 : - )

如果不可能,请创建两个存储过程!一个将给出具有最高精度的结果,另一个接受具有较低精度的参数,该参数调用高精度函数,并将结果转换回较低的精度。

两种不同的功能,两种不同的脚印,但基本上它们只是做同样的事情。

抽象仅在您使用面向对象的方法时才有用。但是数据库中的存储过程不是OO,只是简单的方法。