好吧,我有一个关于 MySql 中递归的问题,关于创建递归阶乘函数。它给我错误 1424:

Well, I have a problem about recursion in MySql, about creating a recursive factorial function. it gives me error 1424:

DELIMITER //
create function FactorialR (n int) returns int
begin
    declare resultado int default 1;
    set resultado=FactorialR(n-1)*n;

 return resultado;
 end//
 DELIMITER ;

MySQL 函数不允许递归。 Recursive stored functions in MySQL

你不会使用递归,但你总是可以使用简单的循环

当然你可以使用允许递归调用的过程

create function FactorialR (n int) returns int
begin
    declare resultado BIGint default 1;
    DECLARE m int DEFAuLT  1;
    
loop_label:  LOOP
      IF  m = n THEN 
          LEAVE  loop_label;
      END  IF;
            
      SET  m = m + 1;
      set resultado=resultado*m;
  END LOOP;
 return resultado;
 end
SELECT FactorialR(4)
| FactorialR(4) |
| ------------: |
|            24 |

db<>fiddle here