为过程添加输入参数
在前面的步骤中,你创建并调用了一个名为 insert_employee 的存储过程,该过程接受两个输入参数:employee_name 和 employee_department。在本步骤中,你将学习如何向该过程添加另一个输入参数。
让我们向 insert_employee 过程添加一个 employee_salary 参数。这将允许我们在插入新记录时指定员工的薪资。
首先,你需要删除现有的过程。如果不删除它,尝试创建同名过程时会收到错误。在你的 MySQL shell 中,运行:
DROP PROCEDURE IF EXISTS insert_employee;
现在,让我们创建带有新输入参数的修改后的存储过程。
DELIMITER //
CREATE PROCEDURE insert_employee (IN employee_name VARCHAR(255), IN employee_department VARCHAR(255), IN employee_salary DECIMAL(10, 2))
BEGIN
INSERT INTO employees (name, department, salary) VALUES (employee_name, employee_department, employee_salary);
END //
DELIMITER ;
让我们分解一下这些更改:
- 我们在过程定义中添加了一个新的输入参数
IN employee_salary DECIMAL(10, 2)。DECIMAL(10, 2) 是薪资的数据类型,它允许最多 10 位数字,其中包含 2 位小数。
- 我们修改了
INSERT 语句以包含 salary 列和 employee_salary 参数。
现在,让我们调用修改后的 insert_employee 过程,以插入一个名为“Charlie Brown”,部门为“Finance”,薪资为 60000.00 的新员工:
CALL insert_employee('Charlie Brown', 'Finance', 60000.00);
要验证数据是否已正确插入,你可以在 MySQL shell 中查询 employees 表:
SELECT * FROM employees;
你应该会在表中看到一个新行,名为“Charlie Brown”,部门为“Finance”,薪资为 60000.00。
你现在已经成功地向存储过程 insert_employee 添加了一个输入参数,并验证了数据已正确插入。这演示了如何修改存储过程以适应新的需求。