Tach!
Die Stored Proceduere bzw. function Idee gefällt mir gut. Aber ich habe damit noch nie gearbeitet. Wie fange ich damit an?
So wie eigentlich immer man da vorgehen sollte. Zuerst wäre ein Überblick über die Möglichkeiten und generellen Vorgehensweisen sinnvoll. Also MySQL-Handbuch aufschlagen und nachlesen. Wie man Sored Procedures und Functions definiert, wirst du finden. Was man in ihrem Inneren verwenden kann, sagt das Kapitel MySQL Compound-Statement Syntax. Du sienst da unter anderem, wie man Variablen erstellt und verwendet, Flow Control Statements für die Beeinflussung des Programmflusses, auch das Condition Handling wird dir vermutlich nicht erspart bleiben. Wichtig aber werden Cursors sein. Das ist so eine Art foreach für eine Ergebnismenge. Und vielleicht, dass man temporäre Tabelle nimmt, wenn man eine Ergebnismenge erstellen möchte. Die Ergebnisse kann man nämlich nicht einfach in einen Ausgabekanal schicken, sondern muss sie zunächst sammeln. Am Ende kommt dann ein SELECT auf diese temporäre Tabelle, einfach so, quasi ins Nichts, und das ist dann das, was als Ergebnismenge einer Storage Procedure entsteht. Bei einer Function hingegen gibt es ein definiertes RETURN.
Und noch ein Tipp: Nimm die MySQL Workbench, damit wird das Entwickeln etwas einfacher. Aber nichtsdestotrotz gibt es keinen Debug-Mechanismus. Wenn du schrittweise entwickelst, musst du jedes Mal die Prodecure/Function löschen und neu anlegen (lassen). Aber das kannst du ja in der Workbench als eine Reihe von Statements niederschreiben:
DROP PROCEDURE IF EXISTS name;
delimiter //
CREATE PROCEDURE name (evtl. parameter)
BEGIN
foo;
bar;
END//
delimiter ;
CALL name(evtl. parameter);
dedlfix.