• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

chalkos

[resolvido] Unir databases MySQL

5 mensagens neste tópico

Boas,

Eu estou a desenvolver um projecto para o qual preciso de usar MySQL e queria ligar duas tabelas.

Tabela_clientes -> id,nome,contacto

Tabela_compras -> idcliente,id,idproduto,hora

Tabela_produtos -> id,nome,preco

queria saber como se pode ligar o ID da tabela_clientes ao idcliente da tabela_compras e o id da tabela_produtos ao idproduto sa tabela_compras. Mas queria uma ligação interna do mysql. tipo eu tentar inserir uma row na tabela_compras com um idcliente que nao existe no id da tabela_clientes e ele dar erro e nao deixar criar.

Acho que isso dá para fazer pois quando estive a estagiar lembro-me que era preciso apagar um registo de uma tabela de mysql e nao deixava porque esse registo ja estava ligado a outro registo de outra tabela.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de definir o idcliente e idproduto da tabela Compras como chaves estrangeiras que referenciam os respectivos ids das tabelas Clientes e Produtos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de definir o idcliente e idproduto da tabela Compras como chaves estrangeiras que referenciam os respectivos ids das tabelas Clientes e Produtos.

Hmm...

E qual é o comando que devo usar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de usar o REFERENCES na chave estrangeira aquando da criação da tabela. Mas não tenho a certeza se todos os engines do MySQL suportam chaves estrangeiras. Tenta ver na documentação.

http://dev.mysql.com/doc/refman/5.1/en/ansi-diff-foreign-keys.html

http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, obrigado

[edit]

já estive a ver nos links que me deste.

só funciona bem (a verificar sempre as referencias quando se inserem dados, alteram tables, eliminam, etc) em base de dados que usem o engine InnoDB, se for com o engine que uso por predefinição ( MyISAM ) não faz verificações.

Não tenho esse engine no meu pc (localhost) onde tenho agora o site. pode ser que quando o alojar tenham lá esse engine.

(tag adicionada)

Mais uma vez obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora