我正在尝试创建此过程,但是有一个我无法解决的错误。它给了我
错误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
答案 0 :(得分:0)
您必须先声明您的变量,然后才能使用它。这样的东西,放在begin语句之后(或者至少在您尝试使用该变量之前的一段时间):
DECLARE p_salida INT DEFAULT 1;
文档:https://dev.mysql.com/doc/refman/8.0/en/declare-local-variable.html