När MySQL AB lanserade MySQL5, så var det den största uppdateringen av databasen MySQL sedan version 4. I och med version 5 så kunde man använda Stored Procedures (Lagrade Procedurer).
För att förstå denna artikel fullt ut bör du ha i bakhuvudet att den riktar sig främst till de som redan vet vad MySQL är och har grundläggande databaskunskaper. Om du inte har en blekaste aning om vad MySQL är för något, så spelar det ingen roll om du läser artikeln eller inte. Du kommer inte att förstå särskilt mycket.
Det enda du behöver förutom MySQL5 är en SQL-editor. Jag använder Navicat MySQL. Man kan naturligtvis använda phpMyAdmin om man så vill.
En lagrad procedur är en funktion som innehåller SQL-kod som utför något. En lagrad procedur sparas i själva databasen. Man anroppar en lagrad procedur genom att skriva CALL. Fördelarna med en lagrad procedur är att man inte behöver skriva samma SQL-kod om och om igen. Utan man behöver bara anroppa den. Det kan spara en del utvecklingstid.
CREATE PROCEDURE <procedurnamn>(<paramenterlista>) BEGIN END
Det är smart att ge proceduren ett namn som talar om vad den gör. Börja ett procedurnamn med prefixen sp_ eller p_
Nu ska vi skriva våran första procedur. Den kommer att skriva ut det berömda Hello World! Vi döper våran proceduren till sp_hello.
CREATE PROCEDURE sp_hello() BEGIN SELECT 'Hello World!'; END
När vi är klara, exekverar vi koden. När koden exekveras, skapas proceduren. För att testa att den fungerar så skriver vi CALL sp_hello(); i SQL-editorn och resultatet bör självklart bli Hello World!.
CALL sp_hello();
Nu ska vi ändra proceduren så att den tar en IN-parameter, med en IN-parameter kan du skicka in ett värde i proceduren. Det finns även OUT-parameter som skickar tillbaka ett värde, och INOUT-parameter som både kan ta emot och skicka tillbaka värden.
Denna procedur döper vi till sp_hello2.
CREATE PROCEDURE sp_hello2(IN name VARCHAR(30)) BEGIN SELECT CONCAT('Hej ',name,'!'); END
Nu gör vi precis som när vi skapade våran första procedur, för att skapa sp_hello2. Skriv CALL sp_hello2('Kalle'); i SQL-editorn och exekvera koden.
CALL sp_hello2('Kalle');
Resultatet borde se ut så här: Hej Kalle!
Boken MySQL - Stored Procedures Programming är en mycket bra bok om lagrade procedurer. Boken lär också ut hur man skapar triggers och vad transactions är.
ISBN: 0596100892
Skribent: Christher Lenanderhttp://www.w3sidan.net/profil/ice
Var innehållet i den här artikeln användbar? Har du några övriga kommentarer?
Hur mycket gillade du den här artikeln? Ju fler hjärtan desto bättre.