sql >> Base de Datos >  >> RDS >> Mysql

¿Alguien puede explicar las claves externas de MySQL?

Esto no es automático, debe agregar un restricción de clave externa en el customer_id columna del order mesa. Esto se puede hacer en el momento de la creación de la tabla o mediante una instrucción ALTER. Consulte la documentación para conocer los detalles. Como señalaron otros, tenga en cuenta que ambas tablas deben ser tablas InnoDB (las restricciones de clave externa no son compatibles con el motor de almacenamiento MyISAM que las ignorará).

Con o sin una restricción FK, la consulta sería algo como:

SELECT * 
FROM CUSTOMER C, ORDER O
WHERE C.ID = O.CUSTOMER_ID
AND O.ID = ...

Una restricción FK "simplemente" garantizaría que la columna CUSTOMER_ID de la tabla ORDER no puede contener valores que no existen en la tabla CLIENTE (excepto potencialmente NULL) y, por lo tanto, aplicar la integridad referencial.