Aufgabenverteilung

Teil 2: MySQL Stored Procedures

ob die Zuweisung erfolgreich verlaufen ist. Die Prozedur change_agent() soll der Variablen agent einen neuen Wert zuweisen. Da diese Variable global definiert ist und somit sowohl innerhalb, wie auch außerhalb der Prozedur verändert werden kann, muss diese nicht an die Prozedur mit übergeben werden.

CREATE PROCEDURE change_agent(p
VARCHAR(10)) SET @agent = p;

Da der IN-Parameter der Standard-Wert ist, muss er an dieser Stelle nicht explizit aufgeführt werden. Der Übergabewert p kann in Webdesignnerhalb der Variable genutzt und verändert werden, hat jedoch nach Beendigung der Prozedur wieder seinen alten Wert.

OUT und INOUT

Bei der OUT-Variante wird wie bereits erwähnt kein Wert an die Prozedur geliefert sondern nur ein Rückgabewert erwartet, dem Sie eine Variable zuweisen müssen. Setzen Sie dazu als Erstes den Wert des Agenten wieder auf bond007.

MySQL Stored Procedures

© Archiv

Beim Beispiel mit dem OUT-Parameter wird eine globale Variable verändert und zurückgegeben.
SET @agent='bond007';

Erzeugen Sie anschließend eine Prozedur, welcher Sie eine Variable übergeben, die anschließend in der Prozedur verändert wird.

CREATE PROCEDURE change_agent2
(OUT p VARCHAR(10)) SET p ='bond008';

Der Aufruf

CALL change_agent2(@agent)

weist der Variablen @agent schließlich den neuen Wert bond008 zu.

Die dritte Variante kann sowohl einen Wert mitgeben als auch einen Wert zurückgeben.

CREATE PROCEDURE change_agent3
(INOUT p INT) SET @leben=p*2;

Somit wird der globalen Variablen @leben innerhalb der Prozedur der doppelte Wert zugewiesen und dieser ist auch außerhalb der Prozedur weiter verfügbar. Der Aufruf

CALL change_agent3(40)

übergibt somit in die Prozedur die Zahl 40, welche verdoppelt und anschließend mit der globalen Variablen @leben verknüpft wird.

Prozedur-Aufbau

Eine Prozedur besitzt somit folgenden Aufbau: CREATE PROCEDURE name ([parameter]) [zusätze] BEGIN Anweisungen END

Wobei der Parameter noch einmal genauer spezifiziert ist mit [IN / OUT / INOUT] parameter_name DATENTYP.

Beim Anlegen einer Prozedur können Sie darüber hinaus noch eine Reihe von Zusätzen verwenden, die sich untereinander frei kombinieren lassen: • LANGUAGE SQL legt die Sprache fest, in welcher die Prozedur geschrieben wird. Aktuell steht nur SQL zur Verfügung. • NOT DETERMINISTIC beschreibt, dass die Prozedur bei gleicher Eingabe nicht immer den gleichen Rückgabewert zur Verfügung stellt. Das Gegenteil wäre DETERMINISTIC. • MODIFIES SQL DATA zeigt an, dass Daten durch die Prozedur verändert werden können. Alternativ zu diesem Wert gibt es noch CONTAINS SQL, NO SQL und READS SQL DATA. Der Erste aus dieser Gruppe beschreibt, dass Prozedur weder lesend noch schreibend auf Daten zugreift und die letzten beiden geben an, dass keine SQL-Befehle ausgeführt werden oder nur lesend auf die Datenbank zugegriffen wird. • SQL SECURITY DEFINER bestimmt, welche Berechtigungen beim Ausführen der Prozedur in Betracht gezogen werden sollen. Es stehen Anleger (DEFINER) und Aufrufender (INVOKER) zur Auswahl. • COMMENT: Spezielles Kommentarfeld zu einer Produktion.

Bevor Sie nun loslegen mit der Entwicklung Ihrer ersten größeren Prozedur lohnt ein Blick zurück - mithilfe des Befehls SHOW PROCEDURE STATUS \G sehen Sie alle in der Datenbank vorhandenen Stored Procedures.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…
News
Video
SciFi-Action mit Ryan Gosling und Harrison Ford
Video
Agatha-Christie-Verfilmung mit Johnny Depp
Video
Kinostart: 23.11.2017