chalkos Posted October 25, 2009 at 03:54 PM Report Share #293294 Posted October 25, 2009 at 03:54 PM 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 Link to comment Share on other sites More sharing options...
Baderous Posted October 25, 2009 at 05:01 PM Report Share #293300 Posted October 25, 2009 at 05:01 PM Tens de definir o idcliente e idproduto da tabela Compras como chaves estrangeiras que referenciam os respectivos ids das tabelas Clientes e Produtos. Link to comment Share on other sites More sharing options...
chalkos Posted October 25, 2009 at 05:20 PM Author Report Share #293303 Posted October 25, 2009 at 05:20 PM 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? Link to comment Share on other sites More sharing options...
Baderous Posted October 25, 2009 at 05:25 PM Report Share #293305 Posted October 25, 2009 at 05:25 PM 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 Link to comment Share on other sites More sharing options...
chalkos Posted October 25, 2009 at 05:59 PM Author Report Share #293311 Posted October 25, 2009 at 05:59 PM 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now