Mysqlのデフォルトの区切り文字は;
です。 これは、コマンドラインの1つのステートメントに使用されます。
select * from users ;
コード全体を実行するトリガーまたはストアドプロシージャを作成する場合、mysqlはそれがコード/クエリのブロックであることを理解する必要があります。
区切り文字が指定されていない場合、mysqlが;
に遭遇したとき ストアドプロシージャまたはトリガー内では、それを1つのステートメントと見なし、実行しようとします。したがって、ストアドプロシージャまたはトリガーの区切り文字を提供し、その区切り文字内のすべてが1つの完全なコードセットであることをmysqlに認識させる必要があります。
したがって、あなたの例では
SELECT * FROM products;
;
以外の区切り文字がある場合は、完全なステートメントの一部になります。 最初に提供されます。