Ошибка 1193 при создании хранимой процедуры mysql - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать эту процедуру, но есть ошибка, которую я не могу решить.Это дает мне

ошибка 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

1 Ответ

0 голосов
/ 27 ноября 2018

Вы должны объявить свою переменную, прежде чем сможете ее использовать.Примерно так, помещается сразу после вашего оператора начала (или, по крайней мере, некоторое время, прежде чем вы попытаетесь использовать переменную):

DECLARE p_salida INT DEFAULT 1;

Документация: https://dev.mysql.com/doc/refman/8.0/en/declare-local-variable.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...