DELIMITER
Временно меняет разделитель, чтобы MySQL не завершил создание процедуры на первой точке с запятой внутри тела.
DELIMITER $$Практикум закрепляет параметры хранимых процедур на трёх задачах: возраст, зарплата и увеличение зарплаты.
В первой задаче достаточно IN: id сотрудника входит в процедуру, а результат показывается обычным SELECT.
Во второй задаче нужен OUT: зарплата возвращается через переменную вызывающего кода.
В третьей задаче нужен INOUT: текущая зарплата входит в процедуру, увеличивается на 10% и возвращается наружу.
Перед проверкой важно создать или выбрать таблицу employees с колонками id, age, salary.
Топ-3 ошибки: пропустить CALL, написать только имя процедуры, забыть SELECT @salary после вызова.
DELIMITERВременно меняет разделитель, чтобы MySQL не завершил создание процедуры на первой точке с запятой внутри тела.
DELIMITER $$CREATE PROCEDUREСоздаёт процедуру для каждой задачи практикума.
CREATE PROCEDURE get_employee_age(IN emp_id INT)SELECT ... INTOИспользуется во второй задаче, чтобы записать зарплату в OUT-параметр.
SELECT salary INTO emp_salary FROM employees WHERE id = emp_id;SETСоздаёт переменную для передачи в OUT или меняет значение INOUT.
SET emp_salary = emp_salary * 1.1;CALLЗапускает процедуру. В источнике в решениях местами опущено слово CALL; в исполняемом MySQL-варианте его нужно писать явно.
CALL increase_salary(@salary);