Muy buenas, tengo problemas para hacer un procedimiento y queria ver si me podeis echar una mano.
Quiero que insertando el genero de un libro me de los datos del titulo el autor(nombre y apellido), año de publicacion, nacionalidad del autor, y que estos datos me los Inserte en una tabla que tengo para mostrar los datos.
Esta es la relacion de las tablas:
Libros (id_libro, titulo, apubli, id_genero)
autor (id_autor, nombre apellido, nacionalidad)
libroautor (id_libro, id_autor)
genero (id_genero, nombre)
cursorGenero(titulo, nombre y apellido autor, apubli, nacionalidad)
y ese es el procedimiento que he creado.
Código SQL:
Ver originalCREATE PROCEDURE buscarPorGenero (p_genero VARCHAR(30))
BEGIN
DECLARE curGenero CURSOR FOR
SELECT Libros.titulo, autor.nombre, autor.apellido, Libros.apubli, autor.nacionalidad
FROM (Libros INNER JOIN libroautor ON Libros.id_libro=libroautor.id_libro)
INNER JOIN autor ON libroautor.id_autor=autor.id_autor
WHERE Libros.id_genero = (SELECT id_genero
FROM genero WHERE nombre=p_genero);
DECLARE v_titulo VARCHAR(150)
DECLARE v_nombre VARCHAR(60)
DECLARE v_apellido VARCHAR(60);
DECLARE v_apubli INT(4);
DECLARE v_nacionalidad VARCHAR(60);
OPEN curGenero; curGenero_loop: LOOP
FETCH curGenero INTO v_titulo, v_nombre, v_apellido, v_apubli, v_nacionalidad;
INSERT INTO cursorGenero VALUES (v_nombre, v_apellido, v_apubli, v_nacionalidad);
END LOOP curGenero_loop;
SELECT * FROM cursorGenero;
CLOSE curGenero;
END buscarPorGenero;
Cualquier ayuda la agradecere enormemente ya que estoy bastante apurado con este tema. Un saludo y Muchas gracias.