Ver Mensaje Individual
  #13 (permalink)  
Antiguo 12/09/2009, 17:58
Avatar de nonpublic
nonpublic
 
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 15 años, 6 meses
Puntos: 4
Respuesta: Obtener valor de un campo

Prueba con esto:

Cita:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `autores`
--

CREATE TABLE IF NOT EXISTS `autores` (
`id_autor` int(4) NOT NULL auto_increment,
`id_libro` int(4) NOT NULL,
`autor` varchar(50) NOT NULL,
PRIMARY KEY USING BTREE (`id_autor`,`id_libro`),
KEY `FK_autores_1` (`id_libro`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `libros`
--

CREATE TABLE IF NOT EXISTS `libros` (
`id_libro` int(4) NOT NULL auto_increment,
`titulo` varchar(50) NOT NULL,
`editorial` varchar(30) NOT NULL,
`isbn` varchar(20) NOT NULL,
`precio` int(3) NOT NULL,
PRIMARY KEY (`id_libro`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Filtros para las tablas descargadas (dump)
--

--
-- Filtros para la tabla `autores`
--
ALTER TABLE `autores`
ADD CONSTRAINT `FK_autores_1` FOREIGN KEY (`id_libro`) REFERENCES `libros` (`id_libro`);

--
-- Crear SP
--
CREATE DEFINER=`mibd`@`%` PROCEDURE `sp_ins_informacion`( #Aqui debes cambiar mibd por el nombre de tu Base de datos
IN _titulo VARCHAR(50),
IN _editorial VARCHAR(30),
IN _isbn VARCHAR(20),
IN _precio INT(3),
IN _autor VARCHAR(50)
)
BEGIN
DECLARE id INT;
SET AUTOCOMMIT=0;
START TRANSACTION;

INSERT INTO libros(titulo,editorial,isbn,precio) VALUES (_titulo,_editorial,_isbn,_precio);

SET id = LAST_INSERT_ID();
IF id > 0 THEN
INSERT INTO autores(id_libro,autor) VALUES (id,_autor);
COMMIT;
ELSE
ROLLBACK;
END IF;
END
Luego lo llamas desde tu consulta asi:
Cita:
CALL sp_ins_informacion ('miTitulo','miEditorial','miISBN','35','miAutor') ;