У меня есть хранимая процедура, которая заполняет временную таблицу.Временная таблица заполняется с использованием нескольких динамических SQL-операторов (в ней есть предложение «с» & «между»).Я выполняю этот SQL внутри моей хранимой процедуры, используя:
set @sql = concat("insert into my_temp select * from my_table where my_date between ", date1, " and ", date2)
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
/* more prepared dynamic statements */
Проблема в том, что мои драйверные жалобы возникают, как только он встречает первый оператор EXECUTE, очевидно, он думает, что MySQL пытается вернуть набор результатов из хранимой процедуры,Так ведет себя mysql, когда дело доходит до динамического sqls в хранимых процедурах?
Я получаю эту ошибку от драйвера ruby / rails / mysql2 -
Mysql2::Error: PROCEDURE my_db.sp_special_customers can't return a result set in the given context:
По сути, драйвер не поддерживает возвращаемый результат-находит от хранимой процедуры, что нормально.И это не проблема, проблема для меня в том, почему мой драйвер думает, что EXECUTE stmt1 означает, что возвращается набор результатов?
Есть ли способ в Mysql исправить это?