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 馃槈

CompartirTweet about this on TwitterShare on TumblrShare on FacebookShare on LinkedInShare on Google+Email this to someone

Tags ; , , ,

Escribe un comentario

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