Aufgabenverteilung

Teil 2: MySQL Stored Procedures

18.3.2009 von Redaktion pcmagazin und Andreas Hitzig

ca. 2:05 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

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
Beim Beispiel mit dem OUT-Parameter wird eine globale Variable verändert und zurückgegeben.
© Archiv
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 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.