根据tbl_employees创建存储过程:employeebyid(IN iemployee_id CHAR(10), OUT oname VARCHAR(15), OUT oyear INT)
MySQL数据库创建存储过程如下,在创建存储过程时,需要使用不同的语句分隔符以区分普通SQL语句:
DELIMITER $$
CREATE PROCEDURE employeebyid(
IN iemployee_id CHAR(10),
OUT oname VARCHAR(15),
OUT oyear INT
)
BEGIN
-- 声明变量
DECLARE starting_date DATE;
DECLARE current_year INT;
-- 获取姓名和入职日期
SELECT name, starting_date INTO oname, starting_date
FROM tbl_employees
WHERE employee_id = iemployee_id;
-- 获取当前年份
SET current_year = YEAR(CURDATE());
-- 计算工龄
SET oyear = current_year - YEAR(starting_date);
END;
测试:
SET @employee_id = '01007';
CALL employeebyid(@employee_id, @name, @year);
SELECT @name, @year;