Разделителят по подразбиране на Mysql е ; който се използва за един израз в командния ред, нещо като
select * from users ;
Когато пишете тригер или съхранена процедура за изпълнение на целия код, mysql трябва да разбере, че това е блок от код/заявка.
Ако не е предоставен разделител, тогава когато mysql срещне ; вътре в процедурата за съхранение или тригера, той ще мисли това като един израз и ще се опита да го изпълни. Така че трябва да предоставим разделител за процедура или тригер за съхранение и да накараме mysql да разбере, че всичко в този разделител е един пълен набор от код.
Така че във вашия пример
SELECT * FROM products;
той ще бъде част от пълния оператор, когато има разделител, различен от ; се предоставя в началото.