08. september 2006 - 17:31Der er
6 kommentarer og 1 løsning
MySQL 5 og Stored Procedures recursive
Jeg har installeret MySQL 5.0 for at eksperimentere med de nye muligheder for bl.a. stored procedures.
Jeg ved intet om at skrive stored procedures der kan kalde sig selv i MySQL, og jeg synes ikke jeg kan finde nogen gode eksempler omkring emnet på google.
Er der nogen, måske bare generelt, SQL hajer der kan belyse emnet for mig, måske med et lille eksempel?
men her er et (velkendt) eksempel (som absolut ikke bør laves som SP):
DELIMITER // CREATE PROCEDURE fac(INOUT n INTEGER) BEGIN DECLARE tmp INTEGER; IF n > 1 THEN SET tmp = n - 1; CALL fac(tmp); SET n = n*tmp; ELSE SET n = 1; END IF; END// CREATE PROCEDURE fac2(IN n INTEGER) BEGIN DECLARE tmp INTEGER; SET tmp = n; CALL fac(tmp); SELECT tmp; END// DELIMITER ; SET MAX_SP_RECURSION_DEPTH=100; CALL FAC2(7);
Det var egenlig i den tro, at "bearbejde" dataene til fx forum-kategori-hiraki (ala eksperten), ville være mere hensigtsmæssigt end at afvikle mange individuelle kald til databasen.
Men selvfølgelig er det ikke altid den rigtige vej frem.
Dog vil jeg tro at for Oracle er det barnemad, så spørgsmålet er bare om MySQL på et eller andet tidspunkt vil kunne døje de samme "tæsk".
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.