Stored Procedures in MySQL
Upcoming SlideShare
Loading in...5
×
 

Stored Procedures in MySQL

on

  • 3,483 views

 

Statistics

Views

Total Views
3,483
Slideshare-icon Views on SlideShare
1,953
Embed Views
1,530

Actions

Likes
0
Downloads
8
Comments
0

2 Embeds 1,530

http://blog.mayflower.de 1461
http://feeds.feedburner.com 69

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Stored Procedures in MySQL Stored Procedures in MySQL Presentation Transcript

    • 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 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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