Как создать временные процедуры в MySQL?

В настоящее время я работаю над приложением портала для ресторана. Бэкэнд-база данных - Mysql, и я использую поддержку Spring JDBC для записи логики доступа к данным.

Некоторые из моих DAO загромождены несколькими запросами и получают до тысячи строк кода. Я думаю, что я могу уменьшить размер и сложность, переместив часть моей логики в процедуру SQL-PSM (поскольку привязка данных и код клея в Java - это мерзость из ада).

Однако у меня нет прав DDL на Db и, следовательно, не могу создать процедуру.

Мне было интересно, есть ли способ создать временную процедуру, способную к отбрасыванию, которая может выполняться непосредственно, как инструкция DML, без необходимости ее создания вначале.

то есть. Я хочу, чтобы процедура минус ключевое слово create, которое выполнило бы мою работу, вернет результат и исчезнет.

Погуглил много, но ничего не мог найти.: '(Просто интересно, знаете ли вы, что это изящное решение.

Ответ 1

Я предполагаю, что вы ищете анонимные блоки кода/анонимные процедуры. К сожалению, он не поддерживается в MySQL (поддерживается в "больших" СУБД, таких как Oracle или Sybase)

Я бы предпочел использовать некоторую структуру ORM, но я не разработчик Java, поэтому я не могу рекомендовать их.

Ответ 2

Я не думаю, что ты можешь. Моя рекомендация заключалась бы в создании "хранимой процедуры" на Java. Напишите метод, который принимает ваши входы, выполняет запросы и вычисления, а затем возвращает набор данных.