phpMyAdmin - Хранимые процедуры

{title}

Хранимые процедуры - это блоки кода SQL, которые хранятся в базе данных и используются для выполнения ряда действий, выходящих за пределы запросов, сохраненных в качестве boorkmarks, для вызова их мы делаем это с помощью инструкции CALL, мы даже можем передавать параметры в сказал хранимые процедуры .
Создание хранимой процедуры
Чтобы приступить к созданию хранимой процедуры (SP), мы должны изначально иметь пользовательские разрешения CREATE ROUTINE и ALTER ROUTINE, для пользователя, которого мы будем использовать для их создания в базе данных, также потребуется разрешение EXECUTE, хотя это Он автоматически присваивается создателю SP.
Чтобы создать SP, первое, что мы должны сделать, это перейти в окно запросов, обычно для завершения оператора SQL мы используем точку с запятой ( В этом случае мы собираемся изменить этот разделитель следующим образом (//), потому что SP - это большой оператор SQL, имеющий несколько внутренних элементов, поэтому мы не можем завершить содержимое точкой с запятой (

{title}


Как только это будет сделано, мы собираемся ввести наш код в поле запроса, давайте посмотрим пример кода:
 ПРОЦЕДУРА СОЗДАНИЯ `add_page` (IN param_isbn VARCHAR (25), IN param_pages INT, OUT param_message VARCHAR (100)) НАЧАТЬ IF param_pages> 100 THEN SET param_message = 'количество страниц слишком велико'; ELSE UPDATE book SET page_count = page_count + param_pages WHERE isbn = param_isbn; SET param_message = 'success'; END IF; КОНЕЦ // 

Как мы видим, не очень сложно выяснить, что делает этот SP, первая строка довольно проста, мы просто определяем входные и выходные параметры SP, затем мы начинаем с BEGIN нашего блока, мы помещаем условное выражение IF ELSE, где мы оцениваем каждый из параметров input, так что с каждым условием мы выполняем действие, затем закрываем ENDIF и END соответствующие блоки нашего SP и заканчиваем //, который является нашим пользовательским разделителем.
Тестирование хранимой процедуры
После определения мы выполним тесты нашего SP, для этого мы увидим пару элементов, которые мы не использовали, сначала давайте посмотрим на код, а затем объяснение:
вызов add_page ('1-234567-22-0', 4, @message);
SELECT @message;
Давайте посмотрим, мы используем CALL для вызова нашего SP, затем передаем два параметра, которые ожидал SP, и, наконец, мы используем переменную MySQL, чтобы получить ответ, во второй строке мы просто обращаемся к этой переменной, чтобы получить ее значение; как мы видим, с этим довольно легко работать.
Управление хранимой процедурой
SP хранится в базе данных, однако он не привязан к какой-либо конкретной таблице, поэтому для доступа к ним мы сначала перейдем к представлению базы данных в phpMyAdmin, на странице структуры у нас будет раздел, называемый подпрограммами .

{title}


Когда мы нажимаем на иконку редактирования, мы видим, что код SP, который нам показывает, чем-то отличается от нашего, давайте посмотрим, что он появляется:
 DROP PROCEDURE `add_page` // CREATE DEFINER =` marc` @ `%` PROCEDURE `add_page` (IN param_isbn VARCHAR (25), IN param_pages INT, OUT param_message VARCHAR (100)) НАЧАТЬ ЕСЛИ param_pages> 100 THEN SET = параметр количество страниц слишком велико »; ELSE UPDATE book SET page_count = page_count + param_pages WHERE isbn = param_isbn; SET param_message = 'success'; END IF; 

SP нельзя изменить, поэтому при попытке отредактировать его первой инструкцией является SP DROP, таким образом, мы удаляем его, чтобы воссоздать его, в последующих строках он также генерирует строку, в которой вы указываете пользователь, который является создателем указанного SP; После внесения изменений, нажав кнопку Go, мы создаем наш модифицированный SP и он сохраняется в базе данных.
На этом мы заканчиваем учебник, поскольку видим, что хранимые процедуры весьма полезны для хранения блоков инструкций, которые мы можем вызывать в любое время, что дает нам возможность подпрограмм в базе данных.