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

Eliminación de una tabla MySQL con restricciones de clave externa

Desafortunadamente, la eliminación automática que cree que debería ocurrir no ocurre. Deberá eliminar manualmente las filas de la Tabla B que contienen el ID de la fila de la Tabla A que desea eliminar.

Intente agregar ON DELETE CASCADE a su definición de columna de clave externa en la Tabla B.

Si está utilizando Hibernate, o alguna otra herramienta ORM, tendría un mecanismo de "cascada" que manejaría esto automáticamente. Pero aquí, dado que está interactuando directamente con la base de datos, debe tener en cuenta que una fila no se puede eliminar si la ID de dicha fila existe en cualquier otra tabla como clave externa (como en su caso, la clave principal de A existe en algunas de las filas en B). A menos, por supuesto, que especifique la propiedad ON DELETE CASCADE.