MySQL - ¿Alguien me podria decir cual es el error en este procedimiento almacenado?

 
Vista:

¿Alguien me podria decir cual es el error en este procedimiento almacenado?

Publicado por Marlon Laguna (4 intervenciones) el 01/11/2016 17:05:41
Saludos a todos desde ayer me estoy quebrando la cabeza... mi procediiento almacenado lo que hace es verificar si el usuario ya existe, en caso de que exista imprime el codigo de error 01 y mata al procedimiento almacenado pero por alguna extraña razon me da el siguiente error: '#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IF' at line 6'

les dejo mi procedimiento:

1
2
3
4
5
6
7
8
9
10
CREATE PROCEDURE insertar_usuarios(in usuarioo varchar(100),in numero_identidad varchar(100),in nombres varchar(100),in apellidos varchar(100), in correo varchar(100),in fecha_nacimiento date,in telefono varchar(100),in sexo varchar(2),in id_rol int,in pass varchar(100))
 
BEGIN
IF EXISTS(SELECT * FROM usuarios WHERE `usuario` = usuarioo ) THEN
SELECT '01'
KILL insertar_usuarios
END IF;
 
INSERT INTO `usuarios` (`usuario`,`numero_identidad`,`nombres`,`apellidos`,`correo`,`fecha_nacimiento`,`telefono`,`sexo`,`id_rol`,`Password`) VALUES(usuario,numero_identidad,nombres,apellidos,correo,fecha_nacimiento,telefono,sexo,id_rol,pass);
END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

¿Alguien me podria decir cual es el error en este procedimiento almacenado?

Publicado por Marlon Laguna (4 intervenciones) el 01/11/2016 19:43:31
Gracias aunque nadie respondio... ya lo resolvi todo era un asinto de poner

DELIMITER//

Y

END//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

¿Alguien me podria decir cual es el error en este procedimiento almacenado?

Publicado por maxi guzman (1 intervención) el 03/11/2016 17:30:33
bro tengo el mismo problema.. me podrias decir como lo resolviste?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Alguien me podria decir cual es el error en este procedimiento almacenado?

Publicado por Marlon Laguna (4 intervenciones) el 03/11/2016 17:37:25
Bueno como comente arriba ya lo resolvi, era asunto del DELIMITER que lo que hace es que cambia la sintaxis del caracter usado para terminar cada parte del proceso en este caso cambia el punto y coma(;) por las barras dobles(//), simplemente lo que hize fue poner DELIMITER // antes de crear el procedimiento y cuando pongo el end ponerlo con barras dobles END// y luego regresas el delimiter a su estado origina DELIMITER ;

EJEMPLO:
1
2
3
4
5
6
DELIMITER //
CREATE PROCEDURE miprocedimiento(parametros...)
BEGIN
contenido del procedimiento.... ahora si podemos usar punto y coma(;) para temrinar cada instruccion.
END//
DELIMITER ;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar