SQL Error (1701): Cannot truncate a table referenced in a foreign key constraint

Contexto: Base de datos MySQL InnoDB.

Significado: Error al querer borrar una tabla que existe una foreign key que lo referencia.

Situación: En ocasiones deseamos modificar/eliminar unos registros/tabla y no podemos porque nos dice que existe otro registro que lo enlaza. En palabras más técnicas: SQL Error (1701): Cannot truncate a table referenced in a foreign key constraint

Solución: Eliminamos todos los registros en el orden de las tablas correcto (primero las hojas y por último la raiz) o atajamos desactivando el control de foreign keys.

Aquí muestro la segunda opción.  Pon a 0 (inhabilita) y a 1 (habilita)  entre el código de MySQL el siguiente flag:

SET FOREIGN_KEY_CHECKS = 0;
[mi codigo]
SET FOREIGN_KEY_CHECKS = 1;

Aunque no es muy recomendable utilizar estos flags, me han sido de utilidad en numerosas ocasiones. Siempre hay que utilizarlos con cabeza y no abusar de ellos.

Ahora ya puedes borrar las tablas a cascoporro.

Comparte, comenta y colabora. Juntos haremos un mundo mejor.

3 comentarios en “SQL Error (1701): Cannot truncate a table referenced in a foreign key constraint

  1. Hola! De hecho en las ultimas versiones de MySql (bueno a mí me ha pasado en la 5.5.35 ) me ha pasado que la única opción viable es la segunda, es decir, la que tú pones aquí, porque ni haciéndolo en el orden correcto te lo permite. (Por si a alguien le pasa y lee esto)

    • confirmo tu comentario compañero, la verdad me dio lata muchos dias, pero con tu comentario y buscando en internet confirmo mis sospechas, no trabaja igual truncate en mysql 5.5.35 como en versiones anteriores. gracias.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.