Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Alguém pode explicar as chaves estrangeiras do MySQL


Isso não é automático, você precisa adicionar um restrição de chave estrangeira no customer_id coluna da order tabela. Isso pode ser feito no momento da criação da tabela ou usando uma instrução ALTER. Verifique a documentação para obter os detalhes. Como outros apontaram, observe que ambas as tabelas precisam ser tabelas InnoDB (as restrições de chave estrangeira não são suportadas pelo mecanismo de armazenamento MyISAM que as ignorará).

Com ou sem restrição FK, a consulta seria algo como:
SELECT * 
FROM CUSTOMER C, ORDER O
WHERE C.ID = O.CUSTOMER_ID
AND O.ID = ...

Uma restrição FK "apenas" garantiria que a coluna CUSTOMER_ID da tabela ORDER não pudesse conter valores que não existam na tabela CUSTOMER (exceto potencialmente NULL) e, portanto, imporia a integridade referencial.