Wpis z mikrobloga

Próbowałem napisać silnię w SQL

DELIMITER //
CREATE PROCEDURE silnia(IN n INT,OUT wynik INT)
BEGIN
SELECT IF(n<1,1,(SELECT n*silnia(n-1)));
END//
DELIMITER ;

Ale zawsze dla przykładowej wartości - 5 dostaje wynik pusty
#programowanie #sql
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bziuuumor: No jeśli tak to rzeczywiście słabo pomogłem... Rekurencja w SQL jest jak najbardziej możliwa, ale nie zagnieździ się więcej niż 99 razy więc to taka trochę słaba silnia.

Chociaż mi tutaj bardziej pachnie na próby autora z rekurencją
  • Odpowiedz
@bziuuumor:
Z funkcją jest ten problem, że dostaje błąd

Recursive stored functions and triggers are not allowed.

To z mnożeniem po, było w tym linku co podesłałem, prawdopodobnie jest jakiś błąd i zwraca dlatego wartość pustą bo ja to z phpMyAdmin
  • Odpowiedz