В эти дни я участвую в новом проекте в моем офисе, и в этом проекте мы активно используем процедуры магазина MySQL. Поэтому я решил написать пост о процедурах магазина MySQL. ?
Я собираюсь обсудить эту тему в серии статей — в этой серии я расскажу:
- Введение в хранимую процедуру MySQL (текущая)
- Как обращаться с переменными и параметрами в хранимых процедурах MySQL
- Как использовать условные элементы управления в хранимых процедурах MySQL
- Как обрабатывать циклы в хранимой процедуре MySQL
- Как использовать Транзакции в Хранимой Процедуре MySQL и Исключении Sql, Обработке Предупреждений SQL
- Как использовать курсоры в хранимой процедуре MySQL
- Как отладить процедуру хранения MySQL
- Как написать модульное тестирование для MySQL Store
Хорошо, теперь мы переходим к определению того, что является основной концепцией процедуры магазина. В этой статье я собираюсь дать ответы на эти вопросы
- Какова цель процедур магазина?
- Какова цель использования Delimiter?
- Как создать простую хранимую процедуру?
- Как вызвать вашу хранимую процедуру?
- Как удалить хранимую процедуру?
- Как изменить хранимую процедуру?
1. Какова цель процедур магазина?
Хранимая процедура — отличная функция для написания многократно используемых запросов, я имею в виду один раз написать и использовать столько, сколько вам нужно. Обычно хранимые процедуры содержат набор запросов, которые выполняются один за другим.
2. Какова цель использования Delimiter?
Разделитель — это символ], который определяет конец вашего оператора SQL.
Почему мы это определяем? Оо
Точка с запятой (;) — уведомление о завершении по умолчанию для любого оператора SQL. Но в хранимой процедуре мы можем иметь несколько операторов SQL, поэтому мы не можем рассматривать точку с запятой в качестве конечного указания Вот почему мы определяем разделитель для каждой хранимой процедуры в MySQL. Обычно я использую $$ в качестве разделителя в моей хранимой процедуре. если вам нужно, вы можете определить свой собственный разделитель в процедуре магазина.
3. Как создать простую хранимую процедуру?
DELIMITER $$ CREATE PROCEDURE `sp_sample_procedure` () LANGUAGE SQL DETERMINISTIC SQL SECURITY DEFINER COMMENT 'comment goes here.' BEGIN -- sql querry (insert/select/update/delete)goes here. END$$
CREATE PROCEDURE `sp_sample_procedure` () : этот элемент создаст вашу процедуру.
ЯЗЫК : Для целей мобильности; значение по умолчанию — SQL.
ДЕТЕРМИНИСТИЧЕСКИЙ : если процедура всегда возвращает одинаковые результаты при одинаковом входе. Это для целей репликации и ведения журнала. Значение по умолчанию НЕ ДЕТЕРМИНИСТИЧЕСКОЕ.
БЕЗОПАСНОСТЬ SQL : Когда мы вызываем процедуру, она проверяет привилегии пользователя. DEFINER — это пользователь, который создал процедуру, а INVOKER — это пользователь, который вызывает процедуру. Значением по умолчанию является DEFINER.
КОММЕНТАРИЙ : Это как табличный комментарий, основная информация о хранимой процедуре.
Это необязательные характеристики ( LANGUAGE, DETERMINISTIC, SQL SECURITY, COMMENT )
4. Как вызвать вашу хранимую процедуру?
Просто выполняем sp имя с ключевым словом CALL, как показано ниже.
CALL sp_sample_procedure();
5. Как удалить хранимую процедуру?
Просто выполнив оператор Drop с именем sp, мы можем удалить sp, с оператором drop лучше использовать оператор IF EXISTS, используя этот оператор, чтобы избежать появления ошибки, если данная процедура не найдена. во время выполнения в базе данных.
DROP PROCEDURE IF EXISTS procedure_name;
6. Как изменить хранимую процедуру?
Как и в таблице alter, мы также можем редактировать нашу хранимую процедуру у нас будет заявление ALTER PROCEDURE.
DELIMITER $$ ALTER PROCEDURE `sp_sample_procedure` () LANGUAGE SQL DETERMINISTIC SQL SECURITY DEFINER COMMENT 'comment goes here.' BEGIN -- sql querry (insert/select/update/delete)goes here. END$$
Итак, здесь я закончил первую статью здесь. Если вы не хотите пропустить другие статьи, подпишитесь на рассылку по электронной почте или следите в Твиттере.
Спасибо хорошего дня ?