MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem. Im Vergleich zu anderen relationalen Datenbankverwaltungssystemen ist MySQL eines der am häufigsten verwendeten Systeme. MySQL kann über gespeicherte Prozeduren komplexe Datenverarbeitung und Geschäftslogik durchführen und so die Leistung und Effizienz der Datenbank verbessern. Im Folgenden wird beschrieben, wie gespeicherte MySQL-Prozeduren ausgeführt werden.
- Gespeicherte Prozeduren erstellen
In MySQL können Sie die Anweisung „CREATE PROCEDURE“ verwenden, um gespeicherte Prozeduren zu erstellen. Die Syntax lautet wie folgt:
CREATE PROCEDURE procedure_name ([IN / OUT / INOUT] parameter_name data_type, [...])
BEGIN
-- 存储过程体
END;
Nach dem Login kopieren
Wobei:
- procedure_name: Der Name der gespeicherten Prozedur.
- IN/OUT/INOUT: Parametertyp der gespeicherten Prozedur, IN repräsentiert Eingabeparameter, OUT repräsentiert Ausgabeparameter und INOUT repräsentiert Eingabe- und Ausgabeparameter.
- parameter_name: Der Name des Parameters.
- data_type: Der Datentyp des Parameters, der jeder von MySQL unterstützte Datentyp sein kann.
- Hauptteil der gespeicherten Prozedur: Der Codeblock, den die gespeicherte Prozedur tatsächlich ausführt um eine gespeicherte Prozedur auszuführen. Die Syntax lautet wie folgt:
CREATE PROCEDURE hello_world()
BEGIN
SELECT 'Hello, World!';
END;
Nach dem Login kopieren
Wobei:
prozedurname: Der Name der auszuführenden gespeicherten Prozedur. - parameter_value: Der Parameterwert, der an die gespeicherte Prozedur übergeben werden soll.
Zum Beispiel können wir die folgende Anweisung verwenden, um die oben erstellte gespeicherte Prozedur hello_world() auszuführen:
CALL procedure_name([parameter_value, ...]);
Nach dem Login kopieren
Das Ausführungsergebnis lautet wie folgt:
CALL hello_world();
Nach dem Login kopieren
Mit dem IN-ParameterMit dem IN-Parameter kann übergeben werden Der Wert für die gespeicherte Prozedur zum Ausführen einer bestimmten Aktion. Die folgende gespeicherte Prozedur verwendet beispielsweise den IN-Parameter, um die Details eines bestimmten Benutzers zu finden:
+-------------+
| Hello, World! |
+-------------+
| Hello, World! |
+-------------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Beim Ausführen der gespeicherten Prozedur müssen wir eine Benutzer-ID an die gespeicherte Prozedur übergeben. Hier ist zum Beispiel ein Beispiel:
CREATE PROCEDURE get_user_details(IN user_id INT)
BEGIN
SELECT * FROM users WHERE id = user_id;
END;
Nach dem Login kopieren
Das Ausführungsergebnis lautet wie folgt:
CALL get_user_details(1);
Nach dem Login kopieren
- Verwendung von OUT-Parametern
Die Verwendung von OUT-Parametern kann Werte aus gespeicherten Prozeduren zurückgeben. Beispielsweise gibt die folgende gespeicherte Prozedur mithilfe des OUT-Parameters die Details des angegebenen Benutzers zurück:
+----+----------+---------+------------+
| id | username | country | created_at |
+----+----------+---------+------------+
| 1 | john | USA | 2022-05-01 |
+----+----------+---------+------------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Beim Ausführen dieser gespeicherten Prozedur müssen wir eine Benutzer-ID übergeben, und die gespeicherte Prozedur gibt die Details des entsprechenden Benutzers zurück dieser Ausweis. Hier ist zum Beispiel ein Beispiel:
CREATE PROCEDURE get_user_details(IN user_id INT, OUT username TEXT, OUT country TEXT, OUT created_at DATE)
BEGIN
SELECT username, country, created_at INTO username, country, created_at FROM users WHERE id = user_id;
END;
Nach dem Login kopieren
Das Ausführungsergebnis ist wie folgt:
CALL get_user_details(1, @username, @country, @created_at);
SELECT @username, @country, @created_at;
Nach dem Login kopieren
- Verwenden von INOUT-Parametern
Mit INOUT-Parametern können Sie einen Parameter in der gespeicherten Prozedur übergeben und den Parameter verwenden, um einen Wert zurückzugeben. Die folgende gespeicherte Prozedur verwendet beispielsweise den INOUT-Parameter, um die Details eines bestimmten Benutzers zu aktualisieren:
+----------+---------+------------+
| @username | @country | @created_at |
+----------+---------+------------+
| john | USA | 2022-05-01 |
+----------+---------+------------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Während der Ausführung dieser gespeicherten Prozedur müssen wir eine Benutzer-ID und die zu aktualisierenden Details übergeben. Hier ist beispielsweise ein Beispiel:
CREATE PROCEDURE update_user_details(INOUT user_id INT, IN username TEXT, IN country TEXT, IN created_at DATE)
BEGIN
UPDATE users SET username = username, country = country, created_at = created_at WHERE id = user_id;
END;
Nach dem Login kopieren
Das Ausführungsergebnis lautet wie folgt:
SET @user_id = 1;
CALL update_user_details(@user_id, 'jane', 'UK', '2022-05-01');
SELECT @user_id;
Nach dem Login kopieren
- Wie Sie sehen können, hat die gespeicherte Prozedur die Benutzerdetails erfolgreich aktualisiert und die Benutzer-ID zurückgegeben.
Durch die Verwendung gespeicherter Prozeduren können in MySQL eine effiziente Datenverarbeitung und Geschäftslogik durchgeführt werden. In diesem Artikel wird beschrieben, wie Sie verschiedene Arten gespeicherter Prozeduren erstellen, ausführen und verwenden. Die Verwendung gespeicherter Prozeduren kann die Leistung und Effizienz der MySQL-Datenbank erheblich verbessern und unser Unternehmen besser unterstützen. Das obige ist der detaillierte Inhalt vonAusführung einer gespeicherten MySQL-Prozedur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!