Aufgabenverteilung

Teil 3: MySQL Stored Procedures

18.3.2009 von Redaktion pcmagazin und Andreas Hitzig

ca. 1:45 Min
Ratgeber
  1. MySQL Stored Procedures
  2. Teil 2: MySQL Stored Procedures
  3. Teil 3: MySQL Stored Procedures
  4. Teil 4: MySQL Stored Procedures
  5. Teil 5: MySQL Stored Procedures

Komplexere Abfragen

Damit haben Sie die Rahmendaten für eine Stored Procedure, die es nun gilt, mit Leben zu füllen. Für die nächsten Abfragen reicht eine normale Variable nicht mehr aus.

MySQL Stored Procedures
Sie können innerhalb von Prozeduren natürlich auch auf SQL-Funktionen zurückgreifen.
© Archiv

Deswegen sollten Sie sich eine Tabelle bsp1 anlegen mit zwei Feldern: einem Schlüssel ident, der auch Primärschlüssel ist und einem Textfeld info mit 20 Zeichen.

CREATE TABLE bsp1 (ident INT, info
VARCHAR(20), PRIMARY KEY(ident));

Bevor Sie mit der Erstellung Ihrer ersten größeren Prozedur beginnen können, müssen Sie noch ein Zeichen als Trennzeichen festlegen. Dies ist notwendig, weil MySQL auch bei der Definition einer Prozedur beim Abschluss der Datenbankabfrage ein Semikolon erwartet, zu diesem Zeitpunkt jedoch die Prozedur nicht abgeschlossen ist.

Aus diesem Grund müssen Sie sich mit einem Trennzeichen - einem sogenannten delimiter - behelfen. Oftmals wird für diesen Zweck die vertikale Linie [ALTGR + <] gewählt und über

Delimiter |

gesetzt.

Die Prozedur macht nichts anderes, als die Länge der übergebenen Zeichenkette zu ermitteln und diese der Variablen @a zuzuweisen. Die zweite Variable @b erhält einfacherweise nur den übergebenen Text. Diese beiden Daten werden in die Tabelle bsp1 eingefügt. Die resultierende Prozedur sieht dann wie folgt aus:

CREATE PROCEDURE bsp1_p
(p VARCHAR(20))
BEGIN
SET @a=CHAR_LENGTH(p);
SET @b=p;
INSERT INTO bsp1(ident, info)
VALUES(@a, @b);
END|

Der Aufruf erfolgt wie gewohnt über den Prozedurnamen zusammen mit dem Übergabewert, also beispielsweise CALL bsp1_p('FCBAYERN');

Wie Sie bei der Eingabe sicherlich bemerkt haben, verlangt MySQL immer noch nach der Eingabe den Delimiter als Abschlusszeichen und akzeptiert nicht das Semikolon. Setzen Sie einfach den Wert für das Trennzeichen wieder auf den Ursprungswert zurück über

delimiter ;

und Sie können anschließend auch wieder alle Abfragen wie gewohnt ausführen.

Lokale Variablen

Bis jetzt sind nur globale Session-Variablen zum Einsatz gekommen, auf diese aus jedem Kontext zugreifen können. Gerade bei Prozeduren ist es jedoch oftmals notwendig, lokale Variablen zu definieren, die auch nicht global gültig sind. Dies verwenden Sie den Schlüsselbegriff DECLARE und verzichten beim Bezeichner der Variable auf das @-Zeichen.

Im folgenden Beispiel wird wieder die Länge des übergebenen Texts berechnet und anschließend über die Hilfsvariable tmp dieser Wert verdreifacht und anschließend als Schlüssel für die Tabelle bsp1 verwendet.

CREATE PROCEDURE bsp2_p
(p VARCHAR(20))
BEGIN
DECLARE tmp INT;
SET tmp=CHAR_LENGTH(p);
SET tmp=tmp*3;
INSERT INTO bsp1(ident, info)
VALUES(tmp, p);
END|

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.

Online-Urheberrecht: Unser Ratgeber bietet Tipps für das Cloud-Recht.

Online-Recht in der Cloud

Wie sieht das Urheberrecht in der Wolke aus?

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…

Logistik im E-Commerce: Prozesse rund um die Logistik.

E-Commerce-Logistik

Logistik im E-Commerce

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.