Dúvida SQL

4 respostas
B

Pessoal, estou fazendo um programa para meu tcc , onde é um software para uma oficina mecânica (em outra linguagem) kkk
Mas a pergunta é para SQL:
Estou com meu banco de dados pronto (no Mysql), e vou jogar um exemplo aqui: Cadastro de clientes, onde nesse cadastro existem 3 tabelas diferentes: ‘Endereco’, ‘Telefone’ e ‘PF’(dados como RG, CPF, etc). Além da tabela ‘Cliente’.
A tabela ‘Cliente’ possui as chaves estrangeiras para cada tabela: cod_Endereco, cod_Telefone, cod_PF.

O problema é que na hora de fazer um INSERT para isso tudo e finalizar o cadastro, nao estou sabendo como se faz o insert para todas essas tabelas e tbm salvar as chaves estrangeiras na tabela ‘Cliente’. E quando for consultar os dados desse cliente poder receber os dados do endereco por exemplo, só pela chave estrangeira.

Se puderem me ajudar, agradeço!

4 Respostas

utluiz

Olá brunaum15,

Para inserir todas essas tabelas, é recomendável usar uma transação.
Veja http://dev.mysql.com/doc/refman/5.0/en/commit.html

Iniciada a transação, insira primeiro as tabelas que não dependem das demais, no caso: Endereco, Telefone e PF.
Para cada uma delas, recupere o respectivo código (se for gerado).
Veja http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

Finalmente, insira o Cliente utilizando os códigos das 3 outras tabelas nas FK’s.

Efetue o commit da transação (ou rollback em caso de ocorrer algum erro).

Para recuperar os dados de mais de uma tabela, utilize JOIN’s.
Veja http://dev.mysql.com/doc/refman/5.0/en/join.html

Exemplo:

SELECT * FROM Cliente JOIN Endereco ON Endereco.Codigo = Cliente.cod_Endereco

Esse código retorna os dados do cliente e os dados do endereço ao mesmo tempo. Você pode fazer join com as 3 tabelas, assim:

SELECT * FROM Cliente JOIN Endereco ON Endereco.Codigo = Cliente.cod_Endereco JOIN Telefone ON Telefone.Codigo = Cliente.cod_Telefone JOIN PF ON PF.Codigo = Cliente.cod_PF

B

Nossa… mais vai precisar de tudo isso soh para inserir ??
desconhecia alguns desses metodos ai…

utluiz

Dependendo da linguagem que você está usando, o controle de transação e dos códigos pode acrescentar algo em torno de uma dúzia de linhas de código.
Mas não tenho como ajudar muito sem saber de mais detalhes.

B

alguem ae pode ajudar ??

Criado 27 de setembro de 2012
Ultima resposta 28 de set. de 2012
Respostas 4
Participantes 2