Die gespeicherte MySQL-Prozedur ist eine Sammlung von SQL-Anweisungen. Manchmal benötigen wir möglicherweise eine große Reihe von SQL-Anweisungen oder wir müssen die Werte einiger Variablen zu diesem Zeitpunkt festlegen , wir sind absolut notwendig Schreiben Sie eine gespeicherte Prozedur. Lassen Sie uns vorstellen, wie eine gespeicherte Prozedur erstellt wird.
Syntaxformat:
Sie können die CREATE PROCEDURE-Anweisung verwenden, um eine gespeicherte Prozedur zu erstellen.
Das Syntaxformat lautet wie folgt:
CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体> [过程参数[,…] ] 格式 [ IN | OUT | INOUT ] <参数名> <类型>
Die Syntaxbeschreibung lautet wie folgt:
1) Prozedurname
Der Name der gespeicherten Prozedur, die standardmäßig in der aktuellen Datenbank erstellt wird. Wenn Sie eine gespeicherte Prozedur in einer bestimmten Datenbank erstellen müssen, stellen Sie dem Namen den Namen der Datenbank voran, db_name.sp_name. Es ist zu beachten, dass beim Namen vermieden werden sollte, denselben Namen wie die in MySQL integrierte Funktion zu wählen, da sonst ein Fehler auftritt.
2) Prozessparameter
Die Parameterliste der gespeicherten Prozedur. Dabei ist
Gespeicherte MySQL-Prozeduren unterstützen drei Arten von Parametern, nämlich Eingabeparameter, Ausgabeparameter und Eingabe-/Ausgabeparameter, die jeweils durch die drei Schlüsselwörter IN, OUT und INOUT identifiziert werden. Darunter können Eingabeparameter an eine gespeicherte Prozedur übergeben werden, Ausgabeparameter werden verwendet, wenn die gespeicherte Prozedur ein Operationsergebnis zurückgeben muss, und Eingabe-/Ausgabeparameter können sowohl als Eingabeparameter als auch als Ausgabeparameter dienen. Es ist zu beachten, dass der Parametername nicht mit dem Spaltennamen der Datentabelle identisch sein darf. Andernfalls wird der Parametername von der SQL-Anweisung der gespeicherten Prozedur als Spaltenname behandelt, obwohl keine Fehlermeldung zurückgegeben wird unvorhersehbare Ergebnisse.
3) Prozedurhauptteil
Der Hauptteil der gespeicherten Prozedur, auch gespeicherter Prozedurhauptteil genannt, enthält die SQL-Anweisungen, die beim Aufruf der Prozedur ausgeführt werden müssen . Dieser Abschnitt beginnt mit dem Schlüsselwort BEGIN und endet mit dem Schlüsselwort END. Wenn der Hauptteil der gespeicherten Prozedur nur eine SQL-Anweisung enthält, kann das BEGIN-END-Flag weggelassen werden.
Bei der Erstellung gespeicherter Prozeduren wird häufig ein sehr wichtiger MySQL-Befehl verwendet, nämlich der DELIMITER-Befehl. Insbesondere Benutzer, die die MySQL-Datenbank über die Befehlszeile bedienen, müssen lernen, diesen Befehl zu verwenden.
Wenn der Server in MySQL SQL-Anweisungen verarbeitet, wird standardmäßig das Semikolon als Endmarkierung der Anweisung verwendet. Beim Erstellen einer gespeicherten Prozedur kann der Hauptteil der gespeicherten Prozedur jedoch mehrere SQL-Anweisungen enthalten. Wenn diese SQL-Anweisungen immer noch ein Semikolon als Anweisungsabschlusszeichen verwenden, endet der MySQL-Server mit der ersten SQL-Anweisung, die während der Verarbeitung auftritt Terminator des gesamten Programms und verarbeitet die nachfolgenden SQL-Anweisungen im Hauptteil der gespeicherten Prozedur nicht mehr. Um dieses Problem zu lösen, können Sie normalerweise den Befehl DELIMITER verwenden, um den Endbefehl in ein anderes Zeichen zu ändern.
Das Syntaxformat lautet wie folgt:
DELIMITER $$
Die Syntaxbeschreibung lautet wie folgt: $$ ist ein benutzerdefiniertes Abschlusszeichen. Normalerweise kann dieses Symbol einige Sonderzeichen sein , wie zum Beispiel zwei „?“ oder zwei „¥“ usw. Wenn Sie den DELIMITER-Befehl verwenden, sollten Sie die Verwendung des Backslash-Zeichens „“ vermeiden, da es sich um ein MySQL-Escape-Zeichen handelt.
Geben Sie die folgende SQL-Anweisung in den MySQL-Befehlszeilen-Client ein.
mysql > DELIMITER ??
Nach erfolgreicher Ausführung dieser SQL-Anweisung wird die Endmarkierung eines Befehls, einer Anweisung oder eines Programms durch zwei Fragezeichen „??“ ersetzt.
Wenn Sie zum Standard-Semikolon „;“ als Endmarkierung zurückkehren möchten, geben Sie die folgende Anweisung in den MySQL-Befehlszeilen-Client ein:
mysql > DELIMITER ;
Hinweis: DELIMITER und Semikolon „;“ Zwischen ihnen muss ein Abstand sein. Beim Erstellen einer gespeicherten Prozedur müssen Sie über die CREATE ROUTINE-Berechtigung verfügen. Mit dem Befehl SHOW PROCEDURE STATUS können Sie anzeigen, welche gespeicherten Prozeduren in der Datenbank vorhanden sind. Um bestimmte Informationen zu einer gespeicherten Prozedur anzuzeigen, können Sie SHOW CREATE PROCEDURE
Erstellen Sie eine gespeicherte Prozedur ohne Parameter
Die Funktion der gespeicherten Prozedur besteht darin, Schülernoteninformationen aus der Schülernoteninformationstabelle abzufragen. Die Eingabe-SQL-Anweisung und der Ausführungsprozess sind wie folgt dargestellt.
mysql> DELIMITER // mysql> CREATE PROCEDURE ShowStuScore() -> BEGIN -> SELECT * FROM tb_students_score; -> END // Query OK, 0 rows affected (0.09 sec)
Das obige ist der detaillierte Inhalt vonSo schreiben Sie eine gespeicherte MySQL-Prozedur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!