CREATE DEFINER=`root`@`localhost` PROCEDURE `practica8`(e_nombre varchar(255) , e_puesto varchar(255), e_fecha_contratacion date, e_departamento varchar (255))
BEGIN
declare aux int default (select max(noEmpleado) as mx from empleado);
insert into empleado (noEmpleado, nombre, puesto, fecha_contratacion, Comision, depto) values(
aux + 1, e_nombre,
(select IdPuesto from puesto where lower(Puesto) = lower(e_puesto)),
e_fecha_contratacion,
(select IdDepto from departamento where lower(Nombre) = (e_departamento)));
END
这是我尝试运行它的方式
call practica8(e_nombre, e_puesto, e_fecha_contratacion, e_departamento)
答案 0 :(得分:0)
您的调用语句不正确,您应该在调用语句中传递值或用户定义的变量
例如
call practica8(1,2,3,4)
或
set @e_nombre = 1;
set @e_puesto = 2;
set @e_fecha_contratacion =3;
set @e_departamento = 4;
call practica8(@e_nombre, @e_puesto, @e_fecha_contratacion, @e_departamento);
这些值或UDV将放置在create语句参数列表中定义的变量中。