Есть ли способ динамического выполнения кода в MySQL, похожий на «немедленное выполнение» в Oracle? - PullRequest
1 голос
/ 27 сентября 2011

Как и EXECUTE IMMEDIATE в Oracle, есть ли способ динамического выполнения кода в хранимой процедуре MySQL?

Я действительно хочу использовать подготовленный оператор в хранимой процедуре MySQL для генерации нового оператора SQLв каждой итерации цикла.

1 Ответ

1 голос
/ 28 сентября 2011

Это на самом деле не работает так, как я написал. Я просто код, как:

set @preparedstmt = concat('SELECT tid, LENGTH(message) len FROM ? where tid=? and first=1');
prepare stmt from prepared_stmt;
execute stmt using v_tid;
drop prepare stmt;

Просто позаботьтесь об имени таблицы, оно не должно заменяться заполнителем. Так что @preparedstmt должен быть сгенерирован методом concat для создания оператора, который просто заменяет параметры в условиях заполнителем, но не Имя таблицы.

...