Detaillierte Erklärung der Definition und Funktion von Trennzeichen in MySQL

Detaillierte Erklärung der Definition und Funktion von Trennzeichen in MySQL

Wenn Sie MySQL zum ersten Mal lernen, verstehen Sie möglicherweise nicht den eigentlichen Zweck von Trennzeichen. Trennzeichen kommen in MySQL an vielen Stellen vor, z. B. in gespeicherten Prozeduren, Triggern, Funktionen usw.

Leute, die Oracle gelernt haben, werden das Erlernen von MySQL sehr seltsam und verwirrend finden.

Tatsächlich teilt es dem MySQL-Interpreter mit, ob der Befehl beendet ist und ob MySQL ihn ausführen kann.

Standardmäßig ist das Trennzeichen ein Semikolon (;).

Wenn im Befehlszeilenclient eine Befehlszeile mit einem Semikolon endet, führt MySQL den Befehl nach dem Drücken der Eingabetaste aus. Wenn Sie die folgende Anweisung eingeben

mysql> select * from test_table;

Drücken Sie dann die Eingabetaste und MySQL führt die Anweisung sofort aus.

Aber manchmal möchten Sie nicht, dass MySQL dies tut. Sie können weitere Anweisungen eingeben und die Anweisungen können Semikolons enthalten.

Wenn Sie versuchen, die folgende Anweisung im Befehlszeilen-Client einzugeben

mysql> FUNKTION „SHORTEN“ ERSTELLEN (S VARCHAR(255), N INT)
mysql> gibt varchar(255) zurück
mysql> ANFANG
mysql> WENN ISNULL(S) DANN
mysql> <strong>RÜCKGABE ''; </strong>
mysql> SONST WENN N < 15 DANN
mysql> RÜCKGABE LINKS(S, N);
mysql> SONST
mysql> WENN CHAR_LENGTH(S) <= N DANN
mysql> RETURN S;
mysql> SONST
mysql> RETURN CONCAT(LINKS(S, N-10), '...', RECHTS(S, 5));
mysql> ENDE WENN;
mysql> ENDE WENN;
mysql> ENDE;

Standardmäßig ist es nicht möglich, zu warten, bis der Benutzer alle Anweisungen eingegeben hat, bevor die gesamte Anweisung ausgeführt wird.

Weil MySQL automatisch ausgeführt wird, sobald es auf ein Semikolon stößt.

Das heißt, wenn die Anweisung RETURN ''; ausgeführt wird, wird der MySQL-Interpreter ausgeführt.

In diesem Fall müssen Sie das Trennzeichen vorab durch andere Symbole wie // oder $$ ersetzen.

mysql> Trennzeichen //
mysql> FUNKTION „SHORTEN“ ERSTELLEN (S VARCHAR(255), N INT)
mysql> gibt varchar(255) zurück
mysql> ANFANG
mysql> WENN ISNULL(S) DANN
mysql> RÜCKGABE '';
mysql> SONST WENN N < 15 DANN
mysql> RÜCKGABE LINKS(S, N);
mysql> SONST
mysql> WENN CHAR_LENGTH(S) <= N DANN
mysql> RETURN S;
mysql> SONST
mysql> RETURN CONCAT(LINKS(S, N-10), '...', RECHTS(S, 5));
mysql> ENDE WENN;
mysql> ENDE WENN;
mysql> ENDE;//

Auf diese Weise führt der MySQL-Interpreter diese Anweisung nur aus, wenn // erscheint.

Außerdem. Beim MySQL-Speichervorgang ist Folgendes zu beachten:

VERFAHREN löschen, wenn proc_while_test EXISTIERT;
Trennzeichen;;
DEFINER ERSTELLEN = root@localhost VERFAHREN proc_while_test(IN n int)
BEGINNEN 
  DECLARE ich int;
  DECLARE s int;
 Setze i = 0;
  Setze s = 0;
  WÄHREND ich <= n DO
    SETZE s = s + i; setze i++;
    setze i = i + 1;
  Ende WÄHREND;
  wähle s;
Ende
;;
Trennzeichen ;

Im obigen Beispiel führt set i++; dazu, dass die gesamte While-Schleife einen Fehler meldet. In gespeicherten MySQL-Prozeduren darf i++ nicht auf diese Weise geschrieben werden. Es muss in der Form i=i+1 geschrieben werden.

Ergänzung: Werfen wir einen Blick auf die Rolle des Trennzeichens in MySQL

1. Trennzeichen

Trennzeichen ist das MySQL-Trennzeichen. Das Standardtrennzeichen im MySQL-Client ist ein Semikolon (;).
Wenn Sie mehrere Anweisungen gleichzeitig eingeben und sich in der Mitte der Anweisungen Semikolons befinden, müssen Sie ein spezielles Trennzeichen angeben.

2. Verwendung von Trennzeichen

Im vorherigen Artikel gibt es ein Beispiel zum Einrichten eines MySQL-Triggers.

mysql> Trennzeichen // 
mysql> Trigger upd_check erstellen vor Update auf Konto  
  -> für jede Zeile 
  -> beginnen 
  -> wenn neuer Betrag < 0 dann 
  -> setze neuen Betrag auf 0; 
  -> sonst, wenn neuer Betrag > 100, dann 
  -> setze neuen Betrag = 100; 
  -> Ende, wenn; 
  -> Ende; 
  -> // 
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) 
mysql> Trennzeichen;

Das obige ist, zuerst das Trennzeichen auf // setzen,

Die Anweisung wird erst als Ganzes ausgeführt, wenn die nächste // gefunden wird.

Nach der Ausführung setzt die letzte Zeile, delimiter;, das MySQL-Trennzeichen auf ein Semikolon zurück.

Wenn nicht geändert, basieren alle Trennzeichen in dieser Sitzung auf //.

Zusammenfassen

Oben finden Sie eine ausführliche Erklärung zur Rolle des Trennzeichens in MySQL. Ich hoffe, dass es für alle hilfreich ist. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten!

Das könnte Sie auch interessieren:
  • Welche Rolle spielt das MySql-Trennzeichen?

<<:  js zur Implementierung eines Web-Rechners

>>:  Detailliertes Tutorial zur Installation und Konfiguration von Nginx unter Centos7

Artikel empfehlen

Verwendung und Beispiele für Linux-Befehle zur Echotextverarbeitung

Die Beschreibung von echo im Linux-Hilfedokument ...

Beispiele für die Interaktion zwischen MySQL und Python

Inhaltsverzeichnis 1. Daten vorbereiten Erstellen...

Installieren Sie Percona Server+MySQL auf CentOS 7

1. Umgebungsbeschreibung (1) CentOS-7-x86_64, Ker...

CSS-Float-Eigenschaftsdiagramm, Details der Float-Eigenschaft

Die korrekte Verwendung der CSS-Float-Eigenschaft...

So gestalten Sie die Homepage von Tudou.com

<br />Ich arbeite seit mehreren Jahren im Fr...

So fügen Sie in MySQL 8.0 schnell Spalten hinzu

Vorwort: Ich habe vor langer Zeit gehört, dass My...

CSS-Implementierungscode für verzerrte Schatten

Dieser Artikel stellt den Implementierungscode vo...

Centos8.3, Docker-Bereitstellung, Springboot-Projekt, tatsächliche Fallanalyse

Einführung Derzeit ist k8s sehr beliebt und ich h...

HTML-Tutorial, leicht zu erlernende HTML-Sprache

1. <body background=Bilddateiname bgcolor=Farb...