Forzar vaciar tabla (truncate table) que tiene claves externas

agosto 20, 2014

Cuando en MySql intentamos vaciar una tabla (truncate table) que contiene claves externas a otras tablas de la base de datos, podemos encontrarnos con un error muy parecido a este:

mysql> TRUNCATE TABLE `YourTableName`;
 
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`YourTableName`, 
CONSTRAINT `FK_2C0BB1B8D48E193` FOREIGN KEY (`external_id`) REFERENCES `OtherTable` (`id`))

Para solucionarlo, podemos desactivar momentaneamente la comprobaci贸n de las claves externas, vaciar las tablas y, de nuevo, activar la comprobaci贸n de claves externas.

SET FOREIGN_KEY_CHECKS=0;
TRUNCATE TABLE `YourTableName`;
SET FOREIGN_KEY_CHECKS=1;

Queda bajo tu responsabilidad que no comprometas la consistencia de tu base de datos 馃槈

Tags ; , , ,

3 comentarios

    eduardo Oct 11, 2017

    bien utilizado, es genial!!

    Responder
    NeXuZZ Abr 01, 2020

    Excelente cuando falla un insert masivo. muchas gracias crack

    Responder
    Richard RP May 02, 2020

    Excelente aporte

    Responder

Escribe un comentario

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.