💻 Примеры
⚡ Кратко: 💻 примеры
Практикум закрепляет параметры хранимых процедур на трёх задачах: возраст, зарплата и увеличение зарплаты.
В первой задаче достаточно IN: id сотрудника входит в процедуру, а результат показывается обычным SELECT.
Во второй задаче нужен OUT: зарплата возвращается через переменную вызывающего кода.
В третьей задаче нужен INOUT: текущая зарплата входит в процедуру, увеличивается на 10% и возвращается наружу.
Перед проверкой важно создать или выбрать таблицу employees с колонками id, age, salary.
Топ-3 ошибки: пропустить CALL, написать только имя процедуры, забыть SELECT @salary после вызова.
Пример полной проверки
Этот сценарий можно выполнить сверху вниз после создания таблицы employees.
DELIMITER $$
CREATE PROCEDURE get_employee_age(IN emp_id INT)
BEGIN
SELECT age
FROM employees
WHERE id = emp_id;
END $$
CREATE PROCEDURE get_employee_salary(IN emp_id INT, OUT emp_salary INT)
BEGIN
SELECT salary
INTO emp_salary
FROM employees
WHERE id = emp_id;
END $$
CREATE PROCEDURE increase_salary(INOUT emp_salary INT)
BEGIN
SET emp_salary = emp_salary * 1.1;
END $$
DELIMITER ;
CALL get_employee_age(1);
SET @salary = 0;
CALL get_employee_salary(2, @salary);
SELECT @salary;
SET @salary_for_raise = 50000;
CALL increase_salary(@salary_for_raise);
SELECT @salary_for_raise;
Результаты: возраст сотрудника с id 1, зарплата сотрудника с id 2, затем число 55000 после увеличения на 10%.