Проблема в синтаксисе CREATE PROCEDURE
, а не в установочной переменной. Вам просто нужно добавить скобки после имени процедуры. Вот рабочий пример
delimiter $
CREATE PROCEDURE indextemp()
BEGIN
SET @index_ids = (SELECT DISTINCT index_id FROM visibility_index_processing_queue WHERE process_id IS NOT NULL);
SELECT @index_ids;
END$
delimiter ;
Иногда использование символа разделителя в теле процедуры также может вызвать проблемы. Вот почему я устанавливаю разделитель на $
перед созданием процедуры и возвращаю его по умолчанию ;
после того, как я закончу.
Также обратите внимание, что я удалил #
из названия вашей процедуры. В sql #
используется для вставки комментариев. Если по какой-то причине вы действительно хотите использовать его от своего имени, вы должны сделать это следующим образом
CREATE PROCEDURE `#indextemp`()