MySQL存储过程的多态替代方案

时间:2010-05-17 16:07:21

标签: mysql polymorphism

我正在将一些存储过程从Informix移植到MySQL,但我在Informix上有两个存储过程,它们具有相同的名称和不同的参数。

在MySQL中,我无法创建两个具有相同名称的SP,也无法在参数中创建具有默认值的SP。

那么,那里有人知道任何可以帮助我解决这个问题的黑客或黑魔法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

我们在将一个数字运算应用程序从informix移植到mysql时遇到了同样的问题。

通过将参数count添加到过程名称...

来解决问题
INFORMIX                     MySQL
-------------------------    ---------------------------
min(int a, int b)         => min2(int a, int b)
min(int a, int b, int c)  => min3(int a, int b, int c)

这很有效,因为调用应用程序(Perl Scripts)总是知道确切的参数数量。