Bases de Datos - Crear procedimiento para inserta cliente y 2 reservas

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado 1 puesto en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Crear procedimiento para inserta cliente y 2 reservas

Publicado por Jaime (2 intervenciones) el 25/04/2020 21:22:43
Buenas tarde;

Estoy intentando crear un procedimiento en Mysql WorkBench el cual sirva para insertar un nuevo cliente y realizar 2 reservas en las clases que hay, pero no consigo realizar la segunda reserva, estoy perdido. Le copio el procedimiento que he creado, si hago un solo INSERT INTO para la reserva no tengo problema, pero para realizar 2 si porque al realizar la llamada me da duplicado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DELIMITER $$
CREATE PROCEDURE NuevoAlumnoReserva (IN Id_Alumno VARCHAR(10),IN Nombre VARCHAR(15),IN Apellido VARCHAR(25),IN DNI VARCHAR(15),IN Id_Clase VARCHAR(10),IN FechaMatricula DATE)
BEGIN
INSERT INTO
 ALUMNO (Id_Alumno,Nombre,Apellido,DNI)
VALUES
 (Id_Alumno,Nombre,Apellido,DNI);
 INSERT INTO
 MATRICULA (Id_Alumno,Id_Clase,FechaMatricula)
 VALUES
 (Id_Alumno,Id_Clase,FechaMatricula),
 (Id_Alumno,Id_Clase,FechaMatricula);
END$$
DELIMITER ;

Cuando realizo la llamada me da error.
1
CALL NuevoAlumnoReserva ('00017','Enaitz','Santos Alarcon','76202033Y','00012B','2020-01-27','00014B','2020-02-12');
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

Crear procedimiento para inserta cliente y 2 reservas

Publicado por juan (3 intervenciones) el 26/04/2020 02:55:55
Estimado creo que solo esta mal planteado.
te pregunto estas reservando dos veces la matricula? con el mismo id_Clase y la misma FechaMatricula.
para hacer la segunda reserva deberías enviar los datos por parámetros de esta.
te dejo tu ejemplo corregido, si no se ejecuta es porque no tengo mysql como para hacer pruebas, pero debería funcionar.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
DELIMITER $$
CREATE PROCEDURE NuevoAlumnoReserva
IN Id_Alumno VARCHAR(10),
IN Nombre VARCHAR(15),
IN Apellido VARCHAR(25),
IN DNI VARCHAR(15),
IN Id_Clase1 VARCHAR(10),
IN FechaMatricula1 DATE),
IN Id_Clase2 VARCHAR(10),
IN FechaMatricula2 DATE)
BEGIN
 
	INSERT INTO
	ALUMNO (Id_Alumno,Nombre,Apellido,DNI)
	VALUES
	(Id_Alumno,Nombre,Apellido,DNI);
 
	begin
		INSERT INTO
		MATRICULA (Id_Alumno,Id_Clase,FechaMatricula)
		VALUES
		(Id_Alumno,Id_Clase1,FechaMatricula1),
	END
 
	begin
		INSERT INTO
		MATRICULA (Id_Alumno,Id_Clase,FechaMatricula)
		VALUES
		(Id_Alumno,Id_Clase2,FechaMatricula2);
	END
 
END$$
 
DELIMITER ;
 
CALL NuevoAlumnoReserva ('00017','Enaitz','Santos Alarcon','76202033Y','00012B','2020-01-27','00014B','2020-02-12');


PD.: Igual recomendación dale una vuelta mas a como tienes definida la base de datos, podrías haber hecho un id_alumno autoincrementable y que con un procedimiento lo retornes para tenerlo disponible en la reserva, y así no escribir id que se les ocurra al usuario.

éxito espero te sirva.
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
sin imagen de perfil
Val: 4
Ha aumentado 1 puesto en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Crear procedimiento para inserta cliente y 2 reservas

Publicado por Jaime (2 intervenciones) el 26/04/2020 08:10:41
Buenas Juan;

Muchísimas gracias;

No se si podrás ayudarme mas, tal vez sea abusar pero tengo que realizar estas cosas que te adjunto, por falta de tiempo me estoy volviendo loco y lo tengo que entregar para mañana a las 8:00, si podría ayudarme se lo agradecería, no se si hay forma de enviarlo por privado si puedo.

Gracias de antemano por tu ayuda.

Saludos

Jaime
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
Imágen de perfil de Leonardo Daniel A.
Val: 434
Oro
Ha mantenido su posición en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Crear procedimiento para inserta cliente y 2 reservas

Publicado por Leonardo Daniel A. (211 intervenciones) el 26/04/2020 20:28:20
y siempre que agreques, actualizes o elimines registros haslo con transacciones, y mas cuando haces varias modificaciones, que pasa si una falla, la otra si pasa, o se hacen todas o no se hace ninguna
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

Crear procedimiento para inserta cliente y 2 reservas

Publicado por juan (3 intervenciones) el 27/04/2020 19:42:14
Estimado Jaime:
como concejo, encuentro que hacer consultas del lenguaje que sea esta super, pero si usted se encuentra estudiando, no espere que un externo le haga su tarea, lo encuentro de muy mal gusto.
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