Stored Procedures in MySQLMichele Catalano I 06.10.2011                                © Mayflower GmbH 2011
CREATE PROCEDUREI CREATE PROCEDURE   name ([IN|OUT|INOUT] varname type …)       Variablen definition   DEFINER Manuelles d...
Grundlagen Flow ControlI   IF .. ELSEIF … ELSE … ENDIFI   CASE … (WHEN … THEN) … ELSE … END CASEI   label: LOOP … END LOOP...
DECLARE HandlerI DECLARE HANDLER   TYPE      CONTINUE Weiter ausführen des Codes im BEGIN...END Block      EXIT Abbrechen ...
DECLARE VariablenI DECLARE VARIABLE   var_name, [var_name]... type [DEFAULT value]I var_name ist alphanumerischI type ist ...
GRUNDLAGEN CURSORI DECLARE name CURSOR FOR sqlstatement  Deklarieren des CURSORS für denn SQL BefehlI OPEN name  Öffnen de...
RECHTEI CREATE PROCEDUREI ALTER PROCEDUREI DROP PROCEDUREI CALL   Ohne diese Recht kann keine Prozedur ausgeführt werden!!...
VorteileI Sehr Mächtige DatenmanipulationsmöglichkeitI Interessante Möglichkeit zusammen mit TriggerI Gut nutzbar für komp...
NachteileI Einbindung in ein Continues Integrations Umgebung nicht  gegeben.I Testbarkeit eigentlich nicht vorhandenI Kein...
QuellenverweiseI MySQL Manual:   http://dev.mysql.com/doc/refman/5.1/en/stored-programs-defining.html   http://dev.mysql.c...
Vielen Dank für Ihre Aufmerksamkeit!        Referent   Michele Catalano                   michele.catalano@mayflower.de   ...
Nächste SlideShare
Wird geladen in …5
×

Stored Procedures in MySQL

3.528 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.528
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1.542
Aktionen
Geteilt
0
Downloads
9
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Stored Procedures in MySQL

  1. 1. Stored Procedures in MySQLMichele Catalano I 06.10.2011 © Mayflower GmbH 2011
  2. 2. CREATE PROCEDUREI CREATE PROCEDURE name ([IN|OUT|INOUT] varname type …) Variablen definition DEFINER Manuelles definieren des Besitzers der Prozedur (default Ersteller) DETERMINISTIC Bei identischen Input gleicher Output. CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA Definiert der Sprache bzw. ob Daten nur gelesen oder auch manipuliert werden. SQL SECURITY (DEFINER | INVOKER ) Definiert mit welchen Rechten die Prozedur ausgeführt wird. BEGIN … END Block mit der eigentlichen ProzedurI delimiter Mayflower GmbH I 2
  3. 3. Grundlagen Flow ControlI IF .. ELSEIF … ELSE … ENDIFI CASE … (WHEN … THEN) … ELSE … END CASEI label: LOOP … END LOOPI [label:] REPEAT … UNTIL … END REPEATI [label:] WHILE … DO … END WHILE [label]I LEAVE labelI INTERATE label Mayflower GmbH I 3
  4. 4. DECLARE HandlerI DECLARE HANDLER TYPE CONTINUE Weiter ausführen des Codes im BEGIN...END Block EXIT Abbrechen der Ausführung des Codes im BEGIN...END Block CONDITION SQLSTATE sqlstate_value Abfangen eines bestimmten SQLSTATE Wert SQLWARNING Abfangen alle SQLSTATS die mit 01 beginnen NOT FOUND Abfangen alle SQLSTATS die mit 02 beginnen SQLEXCEPTION Abfangen alle SQLSTATS die mit 00, 01 und 02 beginnen Mayflower GmbH I 4
  5. 5. DECLARE VariablenI DECLARE VARIABLE var_name, [var_name]... type [DEFAULT value]I var_name ist alphanumerischI type ist ein valider SQL Feld Type (z.B. CHAR, VARCHAR)I value ist der Standard Wert welche der variable beim deklarieren zugewiesen wird. Mayflower GmbH I 5
  6. 6. GRUNDLAGEN CURSORI DECLARE name CURSOR FOR sqlstatement Deklarieren des CURSORS für denn SQL BefehlI OPEN name Öffnen des CURSORSI FETCH name INTO Iterieren über die Ergebnisse des CURSORS Um das Ende der Daten zu erkennen muss unbedingt ein HANDLER für NOT FOUND definiert werden.I CLOSE name Schließen des CURSORS Mayflower GmbH I 6
  7. 7. RECHTEI CREATE PROCEDUREI ALTER PROCEDUREI DROP PROCEDUREI CALL Ohne diese Recht kann keine Prozedur ausgeführt werden!!I Wenn die Prozedur mit SQL SECURITY INVOKER erstellt wurde muss der Caller auch alle rechte für die in der Prozedur verwendeten SQL Statements haben! Mayflower GmbH I 7
  8. 8. VorteileI Sehr Mächtige DatenmanipulationsmöglichkeitI Interessante Möglichkeit zusammen mit TriggerI Gut nutzbar für komplexes ReportingI Einfaches Hilfswerkzeug für Datenbank redesignI Abfragen von Daten für die der Caller nicht direkt die Rechte hat. Mayflower GmbH I 8
  9. 9. NachteileI Einbindung in ein Continues Integrations Umgebung nicht gegeben.I Testbarkeit eigentlich nicht vorhandenI Kein DebuggingI Mischung von Daten und LogikI Schlecht ein schätzbare Last auf Datenbankservern für Performance TunningI Unsicherheit im zusammenspiele mit Master/Slave bin logI Ein Caller kann durch die Prozedur auch auf Daten für die er keine Zugriffsrechte hat zugreifen. Mayflower GmbH I 9
  10. 10. QuellenverweiseI MySQL Manual: http://dev.mysql.com/doc/refman/5.1/en/stored-programs-defining.html http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-compound-statements.html http://dev.mysql.com/doc/refman/5.1/en/stored-programs-logging.html http://dev.mysql.com/doc/refman/5.1/en/stored-programs-security.html http://dev.mysql.com/doc/refman/5.1/en/call.html http://dev.mysql.com/doc/refman/5.1/en/stored-routines-privileges.html http://dev.mysql.com/doc/refman/5.1/en/stored-program-restrictions.html Mayflower GmbH I 10
  11. 11. Vielen Dank für Ihre Aufmerksamkeit! Referent Michele Catalano michele.catalano@mayflower.de +49 89 242054 1 12 1 Mayflower GmbH Mannhardtstrasse 6 80538 München25.10.2011 Mayflower GmbH 11

×