Página Inicial do Fórum > Banco de Dados - JDBC / SQL

Inserir dados em tabelas relacionadas



Criar novo tópico   Responder tópico


  1. osmio
    Posts:79


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Bom dia pessoal.

    Qual a melhor maneira de inserir dados em tabelas que estão relacionadas?

    Por exemplo:

    Tenho uma tabela pedidos e outra tabela detalhesDoPedido que se relacionam atraves do atributo codigoDoPedido.

    Estou cadastrando o pedido com a instrução SQL (por exemplo):

    INSERT INTO pedidos (codigoDoPedido, nomeDoCliente) VALUES ('pedido1', 'cliente1');

    Gostaria de saber como fazer pra inserir na mesma instrução SQL os detalhes do pedido na tabela detalhesDoPedido.

    Grato.



  1. Ari
    Posts:243


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    osmio
    Bom dia pessoal.

    Qual a melhor maneira de inserir dados em tabelas que estão relacionadas?

    Por exemplo:

    Tenho uma tabela pedidos e outra tabela detalhesDoPedido que se relacionam atraves do atributo codigoDoPedido.

    Estou cadastrando o pedido com a instrução SQL (por exemplo):

    INSERT INTO pedidos (codigoDoPedido, nomeDoCliente) VALUES ('pedido1', 'cliente1');

    Gostaria de saber como fazer pra inserir na mesma instrução SQL os detalhes do pedido na tabela detalhesDoPedido.

    Grato.


    Vc deve inserir pedidos e só depois inserir o detalhes do pedido...
    A tabela Detalhes do Pedido, possue uma Fk de Pedido?

    codigoDoPedido é auto Incremento?
    _________________
    * Aristides Vicente de Paula
    Sun Certified Java Programmer (SCJP 5.0)
    MSc Candidate in Computer Science - UFPE



  1. osmio
    Posts:79


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Isso... é auto incremento.
    Nao tem como fazer isso na mesma instrução SQL?
    Que chato...





  1. Ari
    Posts:243


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    osmio
    Isso... é auto incremento.
    Nao tem como fazer isso na mesma instrução SQL?
    Que chato...




    Vc deve inserir o PEDIDO, e com isso vc consegue o ID_PEDIDO (auto-incremento e PK).... depois vc seta o ID_PEDIDO que deve ser FK da tabela de DETALHE_DE_PEDIDO... para fazer a referencia correta...

    Vlw
    _________________
    * Aristides Vicente de Paula
    Sun Certified Java Programmer (SCJP 5.0)
    MSc Candidate in Computer Science - UFPE



  1. osmio
    Posts:79


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Ari

    Vc deve inserir o PEDIDO, e com isso vc consegue o ID_PEDIDO (auto-incremento e PK).... depois vc seta o ID_PEDIDO que deve ser FK da tabela de DETALHE_DE_PEDIDO... para fazer a referencia correta...

    Vlw



    O que significa esse PK e FK?

    Tem como recuperar esses valores pelo resultset que foi gerado na inserção? ou tenho que pegar do "modelo" utilizado para inserir os dados do PEDIDO?



  1. Ari
    Posts:243


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    osmio
    Ari

    Vc deve inserir o PEDIDO, e com isso vc consegue o ID_PEDIDO (auto-incremento e PK).... depois vc seta o ID_PEDIDO que deve ser FK da tabela de DETALHE_DE_PEDIDO... para fazer a referencia correta...

    Vlw



    O que significa esse PK e FK?

    Tem como recuperar esses valores pelo resultset que foi gerado na inserção? ou tenho que pegar do "modelo" utilizado para inserir os dados do PEDIDO?


    PK -> Chave primaria da tabela, chave única (auto-incremento)
    FK -> Chave secundaria da tabela, chave que referencia o registro ao outro...



    Onde: idDono (fk) da tabela CARRO, guarda a referencia ou valor do Dono do carro... então pra vc saber que é o Dono do Carro... vc Consulta o carro e verificar a FK da tabela q contém um ID pro Dono do carro....
    Certo??

    Então vc insere o dono do carro primeiro, com isso vc consegue o valor idDono (pk) - 'q é autoincremento' e depois insere o Carro colocando todos os valores de Carro... Incluindo idDono (fk) que é idDono (pk) da Tabela Dono...
    Assim vc associa um carro ao Dono do carro...

    Blz
    _________________
    * Aristides Vicente de Paula
    Sun Certified Java Programmer (SCJP 5.0)
    MSc Candidate in Computer Science - UFPE



  1. osmio
    Posts:79


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    blz! entendi.

    valew pelas respostas...



  1. osmio
    Posts:79


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Fuçando num manual de MySQL achei a seguinte possível solução:


    [...]
    Note que as chaves estrangeiras no SQL não são usadas para ligar tabelas, mas são usadas para verificar a integridade referencial.
    Se você deseja obter resultados de múltiplas tabelas de uma instrução SELECT, você pode fazer isto ligando tabelas:

    [...]

    Aparentemente, é mais simples do que criar duas instruções SQL distintas.
    Alguem já utiliza esse tipo de instrução?



  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Banco de Dados - JDBC / SQL