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

    Erro ao cadastrar dados no banco [RESOLVIDO]
    http://javafree.uol.com.br/topic-893956-Erro-ao-cadastrar-dados-no-banco-RESOLVIDO.html

    [RESOLVIDO] Problema com conexão SQL Server JDBC
    http://javafree.uol.com.br/topic-893936-RESOLVIDO-Problema-com-conexao-SQL-Server-JDBC.html

    error loading driver.java.sql.SQLNon Transient Connection: java.net.ConnectException: Erro ao conectar no servidor 'localhost' porta '1527'. Recebida
    http://javafree.uol.com.br/topic-893887-error-loading-driverjavasqlSQLNon-Transient-Connection-javanetConnectException-Erro-ao-conectar-no-servidor-localhost-porta-1527-Recebida.html

    ERRO Hibernate+PostGres+JSF (Caused by: java.lang.NoClassDefFoundError: Could not initialize class util.BaseDadosTCCutil)
    http://javafree.uol.com.br/topic-893825-ERRO-HibernatePostGresJSF-Caused-by-javalangNoClassDefFoundError-Could-not-initialize-class-utilBaseDadosTCCutil.html

    Não Consegue Acessar O Banco De Dados MySQL Acredito !!!
    http://javafree.uol.com.br/topic-893733-Nao-Consegue-Acessar-O-Banco-De-Dados-MySQL-Acredito.html





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