Es gibt drei Typen von MySQL-gespeicherten Prozedurparametern: in, out und inout. Was sind ihre jeweiligen Funktionen und Eigenschaften? 1. Parameter für gespeicherte MySQL-Prozeduren (in) „In“-Parameter der gespeicherten MySQL-Prozedur: Ähnlich wie bei der Wertübergabe von Funktionsparametern in der Sprache C kann dieser Parameter innerhalb der gespeicherten MySQL-Prozedur geändert werden, die Änderung des Typparameters „in“ ist für den Anrufer jedoch nicht sichtbar. Prozedur löschen, falls vorhanden, pr_param_in; Prozedur pr_param_in erstellen ( in ID int – im Typ MySQL-gespeicherter Prozedurparameter) beginnen wenn (id ist nicht null), dann Setze ID = ID + 1; Ende wenn; Wähle ID als id_inner; Ende; setze @id = 10; rufen Sie pr_param_in(@id) auf; wähle @id als id_out; mysql> rufe pr_param_in(@id) auf; +----------+ | id_inner | +----------+ | 11 | +----------+ mysql> wähle @id als id_out; +--------+ | id_aus | +--------+ | 10 | +--------+ Es ist ersichtlich, dass der an die Benutzervariable @id übergebene Wert 10 ist. Nach der Ausführung der gespeicherten Prozedur lautet der Wert innerhalb der Prozedur: 11 (id_inner), aber der Wert der externen Variable ist immer noch: 10 (id_out). 2. Parameter für gespeicherte MySQL-Prozeduren (Ausgang) „Out“-Parameter der gespeicherten Prozedur in MySQL: Übergibt Werte aus der gespeicherten Prozedur an den Anrufer. Innerhalb einer gespeicherten Prozedur ist der Anfangswert des Parameters null, unabhängig davon, ob der Aufrufer einen Wert für den Parameter der gespeicherten Prozedur festlegt. Prozedur löschen, falls vorhanden, pr_param_out; Prozedur pr_param_out erstellen ( aus ID int ) beginnen select id as id_inner_1; -- Der Anfangswert der ID ist null wenn (id ist nicht null), dann Setze ID = ID + 1; Wähle die ID als id_inner_2; anders wähle 1 in ID; Ende wenn; Wähle die ID als id_inner_3; Ende; setze @id = 10; rufen Sie pr_param_out(@id) auf; wähle @id als id_out; mysql> setze @id = 10; MySQL> mysql> rufe pr_param_out(@id) auf; +------------+ | id_inner_1 | +------------+ | NULL | +------------+ +------------+ | id_inner_3 | +------------+ | 1 | +------------+ mysql> wähle @id als id_out; +--------+ | id_aus | +--------+ | 1 | +--------+ Es ist ersichtlich, dass, obwohl wir die benutzerdefinierte Variable @id auf 10 setzen, nach der Übergabe von @id an die gespeicherte Prozedur der Anfangswert der ID innerhalb der gespeicherten Prozedur immer null (id_inner_1) ist. Schließlich wird der ID-Wert (id_out = 1) an den Anrufer zurückgegeben. 3. Parameter gespeicherter MySQL-Prozeduren (Ein/Aus) Die Inout-Parameter gespeicherter Prozeduren in MySQL ähneln den Out-Parametern und beide können Werte innerhalb der gespeicherten Prozedur an den Anrufer übergeben. Der Unterschied besteht darin, dass der Aufrufer auch über Inout-Parameter Werte an die gespeicherte Prozedur übergeben kann. Prozedur löschen, falls vorhanden, pr_param_inout; Prozedur pr_param_inout erstellen ( Ein-/Aus-ID int ) beginnen select id as id_inner_1; -- Der ID-Wert ist der vom Anrufer übergebene Wert, wenn (ID ist nicht null), dann Setze ID = ID + 1; Wähle die ID als id_inner_2; anders wähle 1 in ID; Ende wenn; Wähle die ID als id_inner_3; Ende; setze @id = 10; rufen Sie pr_param_inout(@id) auf; wähle @id als id_out; mysql> setze @id = 10; MySQL> mysql> rufe pr_param_inout(@id) auf; +------------+ | id_inner_1 | +------------+ | 10 | +------------+ +------------+ | id_inner_2 | +------------+ | 11 | +------------+ +------------+ | id_inner_3 | +------------+ | 11 | +------------+ MySQL> mysql> wähle @id als id_out; +--------+ | id_aus | +--------+ | 11 | +--------+ Aus den Ergebnissen können wir ersehen, dass, nachdem wir @id (10) an die gespeicherte Prozedur übergeben haben, die gespeicherte Prozedur schließlich den berechneten Wert 11 (id_inner_3) an den Anrufer zurückgibt. Das Verhalten von Inout-Parametern in gespeicherten MySQL-Prozeduren ähnelt der Übergabe per Referenz in C-Sprachfunktionen. Durch die obigen Beispiele: Wenn Sie nur Daten an die gespeicherte MySQL-Prozedur übergeben möchten, verwenden Sie den Typparameter „in“. Wenn Sie nur den Wert aus der gespeicherten MySQL-Prozedur zurückgeben möchten, verwenden Sie den Typparameter „out“. Wenn Sie die Daten an die gespeicherte MySQL-Prozedur übergeben und sie dann nach einigen Berechnungen an uns zurückgeben müssen, verwenden Sie den Typparameter „inout“. Zusammenfassen Dies ist der gesamte Inhalt dieses Artikels zur detaillierten Erläuterung von Beispielen für MySQL-Datenspeicherprozessparameter. Ich hoffe, es wird Ihnen helfen, MySQL zu verstehen. Interessierte Freunde können sich weiterhin auf diese Site beziehen: Analyse des Auswahlproblems beim Speichern von Zeit- und Datumstypen in MySQL, MySQL-Deklaration von Variablen und Analyse gespeicherter Prozeduren usw. Wenn Sie Fragen haben, können Sie jederzeit eine Nachricht hinterlassen und der Herausgeber wird Ihnen rechtzeitig antworten. Vielen Dank, Freunde, für die Unterstützung dieser Site! Das könnte Sie auch interessieren:
|
<<: Grafisches Tutorial zur Installation und Aktivierung von VMware Workstation 14 Pro
In diesem Artikel wird der spezifische JavaScript...
Der größte Engpass bei der Verwendung von Zabbix ...
Inhaltsverzeichnis Rekursiver Aufruf der Komponen...
Der erzielte EffektImplementierungscode html <...
Die default_server-Direktive von nginx kann einen...
Fall 1 vue-cli erstellt das vue3-Projekt, lädt da...
Inhaltsverzeichnis Auch die Verwendung der integr...
Wenn wir den MySQL-Dienst verwenden, beträgt die ...
Der Befehl crontab wird von Unix und Linux verwen...
Inhaltsverzeichnis Implementierung einer unregelm...
Ergebnisse erzielen Code html <div Klasse=&quo...
Zusammenfassung: Dieser Artikel zeigt, wie Avro-D...
Dieser Artikel enthält einfachen HTML- und Musikp...
Inhaltsverzeichnis SQL-Ausführungsreihenfolge Bin...
Inhaltsverzeichnis Vorwort 1. Erstellen Sie ein n...