In MySQL habe ich diese gespeicherte Prozedur mit einer For-Schleife:
DELIMITER $$
CREATE PROCEDURE ABC()
BEGIN
DECLARE a INT Default 0 ;
simple_loop: LOOP
SET a=a+1;
select a;
IF a=5 THEN
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
END $$
Es wird immer gedruckt 1
. Was ist die richtige Syntax für eine MySQL for-Schleife?
Antworten:
quelle
BEGIN...END
ob es notwendig ist, eine Prozedur zu verwenden und zu erstellen, wenn ich sie nur verwenden möchteLOOP
.Beispiel für eine While-Schleifensyntax in MySQL:
Welche Drucke:
Beispiel für die REPEAT-Schleifensyntax in MySQL:
Welche Drucke:
Beispiel für eine FOR-Schleifensyntax in MySQL:
Welche Drucke:
Führen Sie das Tutorial aus: http://www.mysqltutorial.org/stored-procedures-loop.aspx
Wenn ich Sie dabei erwische, wie Sie diese Art von MySQL-For-Loop-Konstrukten in die Produktion bringen, werde ich Sie mit dem Schaumstoff-Raketenwerfer erschießen. Sie können einen Rohrschlüssel verwenden, um einen Nagel einzuschlagen, aber wenn Sie dies tun, sehen Sie albern aus.
quelle
declare str VARCHAR(255) default '';
und die MySQL (5.6) -Konsole eingeben , wird die Fehlermeldung angezeigtError 1064 (42000): ... for the right syntax to use near '' at line 3
, die so klar wie Schlamm ist (obwohl ich davon ausgehe, dass die DEFAULT-Klausel nicht gefällt).delimiter //
bevor Sie diesen ausführen.Angenommen, Sie haben eine Tabelle mit dem Namen 'table1'. Es enthält eine Spalte 'col1' vom Typ varchar. Die Abfrage zur Kistentabelle ist unten angegeben
Wenn Sie nun eine Zahl von 1 bis 50 in diese Tabelle einfügen möchten, verwenden Sie die folgende gespeicherte Prozedur
Um diese gespeicherte Prozedur aufzurufen, verwenden Sie
quelle
Sie können diese lokale Variable gegen eine globale austauschen, es wäre einfacher.
quelle