Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
1193创建mysql存储过程时出错_Mysql_Sql - Fatal编程技术网

1193创建mysql存储过程时出错

1193创建mysql存储过程时出错,mysql,sql,Mysql,Sql,我正在尝试创建此过程,但有一个错误无法解决。它给了我 错误1193未知系统变量p_salida 我在这里看了其他主题,但我没有发现对我有用的东西 谢谢 bloque: BEGIN -- PK / UK DECLARE EXIT HANDLER FOR 1062 BEGIN ROLLBACK; SET p_salida=-5; END; -- FK DECLARE EXIT HANDLER FOR 1452 BEGIN ROLLBACK; SET p_salida=-6

我正在尝试创建此过程,但有一个错误无法解决。它给了我

错误1193未知系统变量p_salida

我在这里看了其他主题,但我没有发现对我有用的东西

谢谢

bloque: BEGIN
 -- PK / UK
DECLARE EXIT HANDLER FOR 1062
BEGIN
 ROLLBACK;
SET p_salida=-5;
END;

 -- FK
 DECLARE EXIT HANDLER FOR 1452
 BEGIN
    ROLLBACK;
    SET p_salida=-6;
 END;

 DECLARE v_Direccion int;
 DECLARE v_CodUsuario int;

 If not EXISTS (SELECT * From usuarios where Nombre = p_nombre and Apellido 
     = p_Apellido and Correo = p_correo and Contrasena=p_contrasena) THEN
    -- SET p_salida = -1;
    LEAVE bloque;
END IF;


 SELECT codDireccion into v_Direccion 
 From direcciones 
 Order by codDireccion 
 DESC LIMIT 1;

 SET v_Direccion = v_Direccion + 1;

SELECT codUsuario into v_CodUsuario 
From usuarios 
Order by codusuario
DESC LIMIT 1;

    SET v_CodUsuario = v_CodUsuario + 1;

  START TRANSACTION;

  INSERT Into direcciones (CodDireccion, CodigoPostal, Domicilio, Localidad, 
                           Provincia)
       VALUES (v_Direccion, p_CodPostal, 
              p_Domicilio,p_Localidad,p_Provincia);

    INSERT into Usuarios (Apellido, CodUsuario, Contrasena, Correo, 
                          Direccion,FechaNacimiento, nombre)
    VALUES (p_Apellido, v_CodUsuario, p_Contrasena, p_Correo, v_Direccion, 
            p_FechaNacimiento,p_nombre);

   COMMIT;
     SET p_salida = 1;

   END bloque

必须先声明变量,然后才能使用它。类似的内容,放在begin语句之后(或至少在尝试使用变量之前的某个时间):


文档:

我已经在mysql例程中声明了它,但我也像你和我一样尝试了相同的错误创建过程pr_register(在p_codposal char(5)、p_domincilio varchar(100)、p_Localidad varchar(50)、p_Provincia varchar(50)、p_apellido varchar(100)、p_Contrasena varchar(150)、p_Correo varchar(150),在p_FechaNacimiento date中,在p_nombre varchar(30),out p_salida int)中,请清楚地更新问题本身,以便我们可以看到包括此变量在内的整个代码,从而清楚地知道它与代码其余部分的关系。注释中的代码a)断章取义,b)不容易阅读。谢谢
DECLARE p_salida INT DEFAULT 1;