Archivos Mensuales: mayo 2013

Desactivar temporalmente claves foráneas en MySQL

Muchas veces tenemos que borrar datos de tablas, o vaciarlas completamente, pero MySQL no nos lo permite porque hay datos en otra tabla relacionados mediante clave foránea. ¿Cómo podemos desactivar las comprobaciones de clave foránea para ejecutar el borrado correctamente?

El siguiente código desactiva la comprobación de foreign keys, ejecuta las consultas, y luego las vuelve a activar. Ideal para vaciar tablas.

SET foreign_key_checks = 0;
DELETE FROM `tabla` where `id` = 45;
TRUNCATE TABLE `tabla_vaciar`;
SET foreign_key_checks = 1;

Este código es muy sencillo, pero nunca consigo recordarlo. Espero que os sea tan útil como a mi. ¿Dudas, sugerencias? Déjame un comentario.

Anuncios