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