MySql5.0 und höher unterstützen gespeicherte Prozeduren. Ich hatte kürzlich Zeit, dies zu studieren.
Format:
CREATE PROCEDURE Prozessname ([Prozessparameter[,...]]) |
CREATE FUNCTION Funktionsname ([Funktionsparameter[,...]]) |
Prozedurparameter:
[ IN |. OUT |. Parametername Parametertyp
Funktionsparameter:
Parametername Parametertyp
Rückgabetyp:
Gültiger MYSQL-Datentyp
Eigenschaften:
SPRACHE SQL |
Prozedurhauptteil/Funktionshauptteil: Das Format ist wie folgt:
BEGINNEN |
Mir sind proprietäre Features hier egal. Diese sind mit der SQL-Spezifikation nicht kompatibel, daher wird der relevante Inhalt des Merkmals (Features) nicht berücksichtigt.
//
Während des Entwicklungsprozesses sind mehrere Punkte zu beachten:
1. Kommentare zu gespeicherten Prozeduren: MySQL unterstützt die Verwendung von -- oder /**/-Kommentaren, wobei ersterer ein Zeilenkommentar und letzterer ein Segmentkommentar ist
. Variablen werden zunächst mit der Deklaration deklariert und können als Referenz direkt mit dem @-Präfix geändert werden.
Bei der direkten Bearbeitung mit dem MySQL-Administrator-Manager können Siejedoch
den folgenden Funktionstext direkt eingeben
Da MySQL im Skript standardmäßig „“;“ als Trennzeichen verwendet, wird jeder Satz des Prozedurkörpers
von MySQL als gespeicherte Prozedur kompiliert und der Kompilierungsprozess meldet einen Fehler. Daher muss das Schlüsselwort DELIMITER verwendet werden Erklären Sie im Voraus, dass
das Trennzeichen wiederhergestellt wird, wenn das aktuelle Segmenttrennzeichen aufgebraucht ist. Wie unten gezeigt:
Trennzeichen $$ |
4. MySQL unterstützt eine große Anzahl integrierter Funktionen, von denen einige mit großen kommerziellen Datenbanken wie Oracle, Informix, Sybase usw. übereinstimmen, aber es gibt auch einige Funktionen mit inkonsistenten Namen, aber konsistenten Funktionen Namen, aber unterschiedliche Funktionen. Dies ist besonders nützlich für DBAs, die aus der Datenbankentwicklung gewechselt sind und darauf achten sollten.
5. Debuggen gespeicherter Prozeduren oder Funktionen: Ich habe die verschiedenen von MySQL bereitgestellten Toolkits noch nicht untersucht und bin mir nicht sicher, ob es Debugging-Tools bietet. Beim Debuggen von Geschäftsprozessen sind Kompilierungsfehler jedoch relativ einfach zu finden Verwenden Sie einen Vergleich. Der dumme Weg besteht darin, eine Debugging-Tabelle zu erstellen und an jedem Prozesspunkt im Paketkörper einen Datensatz einzufügen, um den Programmausführungsprozess zu beobachten. Dies ist auch eine bequemere und dümmere Methode. ^_^
Im Folgenden finden Sie zwei Beispiele für einen String-Verschlüsselungsalgorithmus. Bei jedem Aufruf mit denselben Eingabeparametern erhalten Sie ein anderes Verschlüsselungsergebnis.
Der Algorithmus ist relativ einfach und nicht stark. Sie werden in Form von Funktionen und Prozeduren wie folgt implementiert:
(1) Funktion
z. B.:
/**/ |
CREATE FUNCTION fun_addmm(inpass varchar(10)) RETURNS varchar(11)
BEGIN
deklariere
string_out varchar(78)
;
deklariere outpass varchar(30) default '
;
/*declare i tinyint;*/
(2) Prozess
PROZEDUR „pro_addmm“ ERSTELLEN (IN inpass varchar(10),OUT outpass varchar(11)) |
Die Ausführungsergebnisse sind wie folgt:
mysql> call pro_addmm('zhouys',@a); |
Der Verschlüsselungsalgorithmus weist mehrere Schwächen auf:
1. Er unterstützt keine Groß- und Kleinschreibung.
2. Er unterstützt kein Chinesisch
. 3. Die Verschlüsselungsstärke reicht nicht aus
. Interessierte können lernen, wie man die Entschlüsselungsfunktion schreibt, also habe ich gewonnen. Ich gehe hier nicht auf Details ein.