尝试执行过程时,我不断收到MySQL错误#1054

时间:2020-10-04 04:52:18

标签: mysql

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)

1 个答案:

答案 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语句参数列表中定义的变量中。