找不到程序失败的地方

kknvjkwl  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(303)

我花了一个小时看代码,但我找不到它失败的地方

DELIMITER $$
    DROP PROCEDURE IF EXISTS equipos$$
    CREATE PROCEDURE equipos(IN nom varchar, IN loc varchar, IN usu varchar
, IN pass varchar, OUT mensaje varchar, OUT nombreOut varchar)
    BEGIN
    select @var:=count(*) from usuario where usu=usuario.usuario;
    if(@var=0) THEN
        INSERT INTO `usuario`(`usuario`, `contraseña`) VALUES (usu,MD5(pass));
        select @id:=usuario.idUsuario from usuario WHERE usuario.usuario=usu;
        INSERT INTO `equipo`(`nombre`, `localidad`, `idUsuario`) VALUES (nom,loc,@id);
        SET mensaje="";
        Set nombreOut=nom;
    else
    SET mensaje="ya existe ese usuario";
    END IF;
    END$$

    DELIMITER ;

告诉我这个错误

something mistaken in your sintax near ' IN loc varchar, IN usu varchar, IN pass varchar, OUT mensaje varchar, OUT nombr' in line 1
mec1mxoz

mec1mxoz1#

提到时需要指定变量的最大长度 VARCHAR 数据类型

CREATE PROCEDURE equipos(IN nom varchar(64), ...
lymnna71

lymnna712#

声明varchar时,必须指定其最大长度。喜欢

CREATE PROCEDURE equipos(IN nom varchar(255), ...

相关问题