Your SlideShare is downloading. ×
  • Like
Stored Procedures in MySQL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Stored Procedures in MySQL

  • 3,155 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,155
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Stored Procedures in MySQLMichele Catalano I 06.10.2011 © Mayflower GmbH 2011
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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