Inledning
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.
Vad behöver jag för program?
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.
Vad är en lagrad procedur?
En lagrad procedur är en funktion som innehåller sqlkod 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 sqlkod om och om igen. Utan man behöver bara anroppa den. Det sparar en hel del utvecklingstid.
Syntax
Så här ser själva procedurkroppen ut
CREATE PROCEDURE <procedurnamn>(<paramenterlista>)
BEGIN
END
Det är viktigt att ge sina procedurer bra namn. Namn som talar om vad proceduren gör.
Börja alltid ett namn med prefixet sp_
Din första procedur
Nu ska vi skriva våran första procedur. Den kommer att skriva ut Hello World! Vi döper proceduren till sp_hello.
Men innan vi kan skapa våran procedur måste vi ha en Schema (Databas) först, om du inte redan har en.
Du skapar ett schema genom att skriva
CREATE SCHEMA test;
Nu när vi har gjort det så är det bara att sätta igång med procedurskapandet.
CREATE PROCEDURE sp_hello()
BEGIN
SELECT 'Hello World!';
END
För att exekvera proceduren, skriv
CALL sp_hello();
Resultatet ska bli
Hello World!
Nu ska vi ändra proceduren så att den tar en IN paramenter. med en IN parameter kan du skicka in ett värde i proceduren.
Det finns även OUT paramenter som skickar tillbaka ett värde, och INOUT parameter som både kan ta emot och skicka tillbaka värden.
Denna procedurer döper vi till sp_hello2.
CREATE PROCEDURE sp_hello2(IN name VARCHAR(30))
BEGIN
SELECT CONCAT('Hello ',name,'!');
END
För att exekvera proceduren, skriv
CALL sp_hello2('Kalle');
Resultatet blir
Hello Kalle!
Sammanfattning
Detta var bara en kort introduktion till Lagrade procedurer i MySQL5.
Länkar
http://www.mysql.com
http://www.navicat.com
Böcker
MySQL Stored Procedures Programming
Språk: Engelska
ISBN: 0596100892
En mycket bra bok. Den tar inte enbart upp Lagrade procedurer. Utan går igenom triggers och Transaktioner.
Skapades: 2007-08-07 00:15:32
Skribent: chrillemeter
Lästs 2611 gånger
Betyg: 0 (artikeln har endast 0 röster, det krävs minst 5 för ett betyg)