Inserir dados em duas tabelas

3 respostas
D

dae galera !!
preciso de Ajuda

estou fazendo um trabalho com o Oracle e java, tenho uma tabela de CLientes que contem o ID do cliente e uma tabela de projetos que também contem este ID do cliente, pois um cliente deve possuir um projeto.

Como faço para inserir um registro à tabela de projeto, sendo que o ID deve ser referenciado ao ID cliente da tabela cliente ?

3 Respostas

berg.pb

Opa Darley…

qdo vc for mapear o banco de dados, vc verá, como vc disse, que um cliente deve possuir um projeto.
nesse caso, vc tem um relacionamento 1:1 entre as tabelas Clientes-Projeto.
Entçao, para não haver erro de persistência, segundo a 1a. regra de mapeamento de banco de dados, vc deverá criar em uma das tabelas um valor que seja refereência para outra tabela. o que chamamos de Chave Estrangeira (Foreign Key).

  1. Ent~çao, digamos que a tabela Cliente tem um atributo ‘Id_Cliente’, que é a chave primária desta classe;
  2. Vc vai criar tb a tabela Projeto, que terá um ‘Id_Projeto’, que é a chave primária dela.
  3. dentro de projeto, vc irá criar um atributo ‘Id_Cliente’ (ou outro nome q cvc escolher), e vai dizer que esta chave recebe um valor que tem que se relativo ao valor da chave Id_Cliente da tabela Clientes.

Para fazer isso no SQL, seria assim, mais ou menos:

Classe Cliente

CREATE TABLE Cliente ( Id_Cliente INT, ... //outros atributos Primary Key (Id_Cliente))

Classe Projeto

CREATE TABLE Projeto( Id_Projeto INT, ...//outros atributos Id_Cliente INT, Primary Key (Id_Projeto), Foreign Key (Id_Cliente) REFERENCES Cliente(Id_Cliente) )

Espero que tenha dado pra entender…
Abraço

D

OK muito bem !
agora entendi
eu estava criando um " REFERENCES CLIENTES (ID_CLIENTE))"
em cada tabela , na de Projeto e na de Cliente , mas agora entendi que isto vai apenas na tabela de Projeto !

Muito Obrigado
:smiley:

welingtondias

Estou com o mesmo problema de inserção.

Porém criei meu banco e relacionei as tabelas usando o programa DBDesigner.

Como posso alterar o processo pra que tudo dê certo?

Obs.: Estou usando o PreparedStatement para realzar o INSERT.

Criado 13 de setembro de 2008
Ultima resposta 12 de set. de 2009
Respostas 3
Participantes 3