💻 Примеры
⚡ Кратко: 💻 примеры
Хранимая процедура — сохранённый в базе блок SQL-кода для многократного выполнения.
В MySQL процедура создаётся через CREATE PROCEDURE, тело пишется в BEGIN ... END, а вызывается через CALL.
Параметры могут быть входными IN, выходными OUT и двунаправленными INOUT.
Минимальный пример: CALL add_employee('John Doe', 30); добавляет сотрудника через заранее созданную процедуру.
Процедуры подходят для повторяемых серверных процессов, сложной бизнес-логики и ограничения прямого доступа к таблицам.
Топ-3 ошибки: забыть DELIMITER, вызвать процедуру как функцию через SELECT, перепутать имя столбца id/employee_id в практической задаче.
Подготовка таблицы employees
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
age INT,
salary INT,
department_id INT
);
INSERT INTO employees (name, age, salary, department_id)
VALUES
('Alice', 28, 5200, 1),
('Bob', 35, 4700, 1),
('Cara', 31, 6100, 2),
('Dan', 24, 3900, 2),
('Eva', 42, 7000, 3);
Процедура добавления сотрудника
DELIMITER $$
CREATE PROCEDURE add_employee(IN emp_name VARCHAR(100), IN emp_age INT)
BEGIN
INSERT INTO employees (name, age)
VALUES (emp_name, emp_age);
END $$
DELIMITER ;
CALL add_employee('John Doe', 30);
emp_name и emp_age — входные параметры. Процедура берёт их значения и вставляет новую строку в employees.