Как создать временные процедуры в MySQL? - PullRequest
14 голосов
/ 06 марта 2012

Я сейчас работаю над портальным приложением для ресторана.Используемая серверная база данных - Mysql, и я использую поддержку Spring JDBC для написания логики доступа к данным.

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

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

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

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

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

Ответы [ 2 ]

13 голосов
/ 06 марта 2012

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

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

3 голосов
/ 06 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...