Fórum Insert mySql #508340
24/01/2015
0
Estou programando em java e preciso de uma ajudinha no MySql:
Minha dúvida é: Preciso inserir 1 linha de registro na tabela PAI, e varias linha de registro na tabela filha, relacionada com a pai.
Neste caso seria:
TABELA_CABEÇALHO_PEDIDO( uma linha. No caso o pedido, seria auto_increment);
TABELA_ITENS_PEDIDO(para cada linha dos itens do pedido, seria associado com o pedido na tebela pai).
Imaginei que uma Trigger resolva isso!
Aguardo ajuda!
Eric Clauber
Curtir tópico
+ 0Posts
24/01/2015
Eduardo Pessoa
Gostei + 0
24/01/2015
Ronaldo Lanhellas
Estou programando em java e preciso de uma ajudinha no MySql:
Minha dúvida é: Preciso inserir 1 linha de registro na tabela PAI, e varias linha de registro na tabela filha, relacionada com a pai.
Neste caso seria:
TABELA_CABEÇALHO_PEDIDO( uma linha. No caso o pedido, seria auto_increment);
TABELA_ITENS_PEDIDO(para cada linha dos itens do pedido, seria associado com o pedido na tebela pai).
Imaginei que uma Trigger resolva isso!
Aguardo ajuda!
Resolve mas não creio que seja a melhor solução, o melhor é você fazer essa lógica no seu código.
Gostei + 0
24/01/2015
Eduardo Pessoa
Gostei + 0
24/01/2015
Ronaldo Lanhellas
No meu ponto de vista as inserções hierárquicas devem ser feitas no próprio sistema, onde toda lógica de negócio deve estar. Não que seja complexo.
Gostei + 0
24/01/2015
Ronaldo Lanhellas
No meu ponto de vista as inserções hierárquicas devem ser feitas no próprio sistema, onde toda lógica de negócio deve estar. Não que seja complexo.
Gostei + 0
25/01/2015
Marisiana Battistella
Inserir o pedido:
* A procedure deverá receber como parâmetros as informações referentes ao pedido e realizar a inserção.
* Após o INSERT, você e deve verificar se ocorreu erro: Se ocorreu retorna uma mensagem ao usuário; Senão retorna o código do pedido inserido. Isso pode ser feito utilizando os EXCEPTION da linguagem SQL.
Na aplicação você deverá chamar a procedure passando por parâmetro as informações do pedido.
Depois disso, verificar se o retorno foi erro ou se foi OK, Se inseriu o pedido corretamente, pega o número do pedido retornado e chama a procedure que vai inserir os itens.
Inserir itens do pedido:
* A procedure deverá receber como parâmetro as informações referentes ao item do pedido e realizar a inserção dele.
* Utilizar EXCEPTION para verificar se a inserção foi realizada corretamente.
Gostei + 0
25/01/2015
Eric Clauber
de certa forma sim, mas o problema é pegar o numero do pedido para a tabela pai e inserir, para cada item da tabela filha. seriam 2 inserts
Gostei + 0
25/01/2015
Eric Clauber
Estou programando em java e preciso de uma ajudinha no MySql:
Minha dúvida é: Preciso inserir 1 linha de registro na tabela PAI, e varias linha de registro na tabela filha, relacionada com a pai.
Neste caso seria:
TABELA_CABEÇALHO_PEDIDO( uma linha. No caso o pedido, seria auto_increment);
TABELA_ITENS_PEDIDO(para cada linha dos itens do pedido, seria associado com o pedido na tebela pai).
Imaginei que uma Trigger resolva isso!
Aguardo ajuda!
Resolve mas não creio que seja a melhor solução, o melhor é você fazer essa lógica no seu código.
Opa,
é que assim, pensei em questao de desempenho, por isso to querendo fazer pelo banco. Mas assim, meu conhecimento em java é básico, estou quebrando a cabeça aqui. Se você tiver algum código que me ajude, agradeço. Nesta questão há outra dúvida. Como gerarei o numero do novo pedido sem consultar no banco, ou sejam. Passa isso tenho que saber o numero do ultimo pedido no banco e acrescentar mais 1. Há algum código que substitua isso??
Gostei + 0
25/01/2015
Eric Clauber
Inserir o pedido:
* A procedure deverá receber como parâmetros as informações referentes ao pedido e realizar a inserção.
* Após o INSERT, você e deve verificar se ocorreu erro: Se ocorreu retorna uma mensagem ao usuário; Senão retorna o código do pedido inserido. Isso pode ser feito utilizando os EXCEPTION da linguagem SQL.
Na aplicação você deverá chamar a procedure passando por parâmetro as informações do pedido.
Depois disso, verificar se o retorno foi erro ou se foi OK, Se inseriu o pedido corretamente, pega o número do pedido retornado e chama a procedure que vai inserir os itens.
Inserir itens do pedido:
* A procedure deverá receber como parâmetro as informações referentes ao item do pedido e realizar a inserção dele.
* Utilizar EXCEPTION para verificar se a inserção foi realizada corretamente.
Opa, obrigado!
Creio que a solução esteja aqui. Vou quebrar a cabeça aqui. Se tiver algum código que me de uma luz, agradeço!
Gostei + 0
26/01/2015
Marisiana Battistella
Não é recomendado utilizar trigger em inserções, alterações e exclusões de dados.
Tudo o que puder ser tratado atráves de procedures e functions, assim deve ser feito.
Gostei + 0
30/01/2015
Daniel Volpato
Estou programando em java e preciso de uma ajudinha no MySql:
Minha dúvida é: Preciso inserir 1 linha de registro na tabela PAI, e varias linha de registro na tabela filha, relacionada com a pai.
Neste caso seria:
TABELA_CABEÇALHO_PEDIDO( uma linha. No caso o pedido, seria auto_increment);
TABELA_ITENS_PEDIDO(para cada linha dos itens do pedido, seria associado com o pedido na tebela pai).
Imaginei que uma Trigger resolva isso!
Aguardo ajuda!
Pode refazer melhor sua pergunta!
Estes insert's que você quer fazer é através da tua aplicação java, certo??
Tuas tabelas no MySql possuem classes e relacionamentos na tua aplicação java??
Esta utilizando JDBC puro ou algum Framework de persistência (tipo Hibernate, Eclipselink, ...)?
Gostei + 0
30/01/2015
Eric Clauber
Estou programando em java e preciso de uma ajudinha no MySql:
Minha dúvida é: Preciso inserir 1 linha de registro na tabela PAI, e varias linha de registro na tabela filha, relacionada com a pai.
Neste caso seria:
TABELA_CABEÇALHO_PEDIDO( uma linha. No caso o pedido, seria auto_increment);
TABELA_ITENS_PEDIDO(para cada linha dos itens do pedido, seria associado com o pedido na tebela pai).
Imaginei que uma Trigger resolva isso!
Aguardo ajuda!
Pode refazer melhor sua pergunta!
Estes insert's que você quer fazer é através da tua aplicação java, certo??
Tuas tabelas no MySql possuem classes e relacionamentos na tua aplicação java??
Esta utilizando JDBC puro ou algum Framework de persistência (tipo Hibernate, Eclipselink, ...)?
Opa amigo as respostas sao...
Sim,
Sim,
e JDBC puro.
Gostei + 0
31/01/2015
Daniel Volpato
Estou programando em java e preciso de uma ajudinha no MySql:
Minha dúvida é: Preciso inserir 1 linha de registro na tabela PAI, e varias linha de registro na tabela filha, relacionada com a pai.
Neste caso seria:
TABELA_CABEÇALHO_PEDIDO( uma linha. No caso o pedido, seria auto_increment);
TABELA_ITENS_PEDIDO(para cada linha dos itens do pedido, seria associado com o pedido na tebela pai).
Imaginei que uma Trigger resolva isso!
Aguardo ajuda!
Pode refazer melhor sua pergunta!
Estes insert's que você quer fazer é através da tua aplicação java, certo??
Tuas tabelas no MySql possuem classes e relacionamentos na tua aplicação java??
Esta utilizando JDBC puro ou algum Framework de persistência (tipo Hibernate, Eclipselink, ...)?
Opa amigo as respostas sao...
Sim,
Sim,
e JDBC puro.
Já que é assim:
Acredito que voce tenha uma camada de persistencia(DAO, repositorio, ...).
Voce poderia por exemplo, na tua camada de serviços um método gerarPedido(Pedido p), onde seria implementado a gravaçao do cabecalho do pedido e depois os itens do pedido.
Algo do tipo:
Connection conn = ConnectionFactory.getConnection();
PedidoRepository rep = new PedidoRepository(conn);
rep.gravarPedido(pedido);
for (PedidoItem item : pedido.getItens()) {
rep.gravarItem(item);
}
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)