Das Standardtrennzeichen von MySQL ist ;
die für eine Anweisung in der Befehlszeile verwendet wird, etwas wie
select * from users ;
Wenn Sie einen Trigger oder eine gespeicherte Prozedur schreiben, um den gesamten Code auszuführen, muss mysql verstehen, dass es sich um einen Code-/Abfrageblock handelt.
Wenn kein Trennzeichen angegeben wird, dann, wenn mysql auf ;
trifft Innerhalb der Store-Prozedur oder des Triggers wird dies als eine Anweisung betrachtet und versucht, sie auszuführen. Wir müssen also ein Trennzeichen für die Speicherprozedur oder den Trigger bereitstellen und mysql verständlich machen, dass alles innerhalb dieses Trennzeichens ein vollständiger Codesatz ist.
Also in Ihrem Beispiel
SELECT * FROM products;
es wird ein Teil der vollständigen Anweisung sein, wenn es ein anderes Trennzeichen als ;
gibt wird am Anfang bereitgestellt.