Dimanche 0 Denunciar post Postado Outubro 13, 2015 Bom, estou fazendo um trabalho onde mexo com gerenciador de bibliotecas, estou registrando na tabela autor, editora, livro e estoque_livro, os registros podem ser feitos várias vezes, só que os dados se repetem. Como na tabela de estoque_livro tenho a quantidade de livros(qt_livros), queria jogar todos os registros de mesmo nome que no caso seriam os livros de mesmo nome e autor dentro dessa quantidade e não estou conseguindo...Segue abaixo o a PROCEDURE funcionando. O único defeito é que os códigos se repetem. delimiter $ create procedure sp_cadastros( in nm_titulo varchar(45), in nm_genero varchar(45), in aa_publicacao DATETIME, in nm_autor varchar(45), in nm_nacionalidade varchar(45), in nm_editora varchar(45), in nm_endereco varchar(45), in cd_contato int(10), in cd_isbn int, in cd_tombo int, in cd_codigobarra int, in qt_livro int) begin declare codigoautor int; declare codigoeditora int; declare codigolivro int; insert into tb_autor(nm_autor, nm_nacionalidade) values (nm_autor, nm_nacionalidade); Select last_insert_id() into codigoautor; select concat('Autor: ',nm_autor,'Cadastrado com sucesso!') as Informacao; insert into tb_editora(nm_editora, nm_endereco, cd_contato) values (nm_editora, nm_endereco, cd_contato); Select last_insert_id() into codigoeditora; select concat('Editora: ',nm_editora,'Cadastrado com sucesso!') as Informacao; insert into tb_livro(nm_titulo, nm_genero, aa_publicacao, cd_autor, cd_editora, cd_isbn, cd_tombo, cd_codigobarra) values (nm_titulo, nm_genero, aa_publicacao, codigoautor, codigoeditora, cd_isbn, cd_tombo, cd_codigobarra); select concat('Livro: ',nm_titulo,'Cadastrado com sucesso!') as Informacao; Select last_insert_id() into codigolivro; insert into tb_estoque_livro(cd_livro, qt_livro) values(codigolivro, qt_quantidade); end$ delimiter; call sp_cadastros(); Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Outubro 14, 2015 Se a chave primária estiver correta, você pode utilizar o INSERT ... ON DUPLICATE KEYS UPDATE .... Exemplo: INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+VALUES(c) # Soma o valor passado com o valor existente. Compartilhar este post Link para o post Compartilhar em outros sites