Ir para o conteúdo
chalkos

[resolvido] Unir databases MySQL

Mensagens Recomendadas

chalkos    0
chalkos

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
chalkos    0
chalkos

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
chalkos    0
chalkos

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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade