[MySQL]: и избранные положения Хранимой процедуры

Я изучаю хранимые процедуры в данный момент.

В соответствии с этой статьей (страница 8) в dev разделе mysql веб-сайта...

Обычно, не нормально поместить операторы SELECT в хранимые процедуры, это для иллюстрации. Я решил, что некоторая процедура должна просто выбрать из нашей таблицы, так, чтобы при вызове процедуры, было очевидно, что она работает.

Почему это?

Использование Хранимых процедур должно упростить сложные избранные операторы не 'лучшие практики'?

Каковы некоторые определенные ситуации, где выгодно использовать хранимую процедуру? Пример?

5
задан Derek Adair 21 January 2010 в 19:28
поделиться

2 ответа

от верхней части моей головки, генерируйте System.guid в скрытом поле в получении страницы «Получить страницы» и свяжите его с помощью вашего заказа / платежа. Просто проверьте на это и отобразите сообщение, сказав, что «оплата уже обработана». или такой.

-121--2760480-

Обычно хранимые процедуры предназначены для сложной обработки в базе данных. Существуют дебаты о своих выгодах. Я никогда не видел, что выбирает в хранимой процедуре была плохой вещью, но я бы не ожидал, что каждое единственное заявление SQL, которое должно быть написано в хранимой процедуре. Это должно быть зарезервировано для тех обработки, которые включают в себя несколько утверждений и должны будут выполняться неоднократно.

Джефф имеет различие о них здесь .

Чтобы ответить на ваш прямой вопрос для конкретных примеров, я обнаружил, что я избегаю их из-за проблем по мобильности. Я пытаюсь сделать все мои обработки приложений. В то же время мне не нужно беспокоиться о пропускной способности сети в моем приложении, поэтому каждая ситуация отличается.

3
ответ дан 14 December 2019 в 13:36
поделиться

Удельная ситуация, когда она выгодно использовать хранимые процедуры / процедуры, заключается в том, что она может обеспечить проверку ошибок на параметрах, аналогичных функциям в парадигме OO. Это дает добавленную «инкапсуляцию»

простой пример:

CREATE PROCEDURE select_table(IN @id INT)
BEGIN
  IF @id < O THEN
    -- ERROR!  do something here
  ELSEIF
    SELECT * from TABLE WHERE id = @id;
  END IF
END
3
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: