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
Ich bin vor kurzem auf ein Problem gestoßen. Die ...
Im vorherigen Artikel haben Sie Docker Desktop in...
Inhaltsverzeichnis 1. Der Unterschied zwischen me...
In diesem Artikel wird der spezifische Code des h...
Betriebssystem: Windows 10_x64 Python-Version: 3....
Das img-Tag in XHTML sollte wie folgt geschrieben...
#Docker-Suche #Docker-Pull-Portainer 1. Laden Sie...
Was tun, wenn VmWare während der Installation von...
Frage Nachdem das Unternehmen den Server migriert...
Testen Sie die Effizienz des Löschens einer große...
In diesem Artikelbeispiel wird der spezifische Co...
Code kopieren Der Code lautet wie folgt: <ifra...
Auf einem Server werden drei MySQL-Instanzprozess...
Der Datentyp von MySQL ist datetime. Die in der D...
Die Trennung von Lese- und Schreibzugriffen in Da...