En este post voy a explicar cómo truncar una tabla de MySQL o MariaDB sin que nos estorben las claves foráneas o foreign keys.
Al truncar una tabla con MySQL, si esta tiene referencias a otras tablas, saldrá un error que dice más o menos así:
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`base_de_datos`.`tabla`, CONSTRAINT `alguna_referencia` FOREIGN KEY (`alguna_clave`) REFERENCES `base_de_datos`.`otra_tabla` (`clave`))
Esto es por seguridad, ya que al truncar se eliminarían si tuviéramos la opción de cascada al eliminar datos. En fin, veamos cómo truncar una tabla aunque tenga referencias a otras.
Nota: antes de esto asegúrate de que ya no necesitas los datos. También recomiendo hacer un respaldo (con PHP también puedes) por si algo sale mal.
La solución es fácil y ya la vimos cuando eliminamos todas las tablas de una base de datos, sin embargo, ese no era el tema principal. En fin, en tu consola ejecuta lo siguiente:
SET FOREIGN_KEY_CHECKS = 0;
Después de eso, haz el truncate de todas las tablas que quieras. Verás que no habrá errores que te detengan. Una vez que termines de truncar todas las tablas y verifiques que efectivamente están vacías, activa el chequeo de nuevo con:
SET FOREIGN_KEY_CHECKS = 1;
Así aseguras la integridad de los datos y te aseguras de no eliminar datos que tengan referencia en un incidente.
En caso de que no puedas ejecutar comandos, simplemente haz un delete y luego reinicia el contador de auto incremento si es que existe.
Mira más sobre bases de datos o MySQL en mi blog.
En un post previo te enseñé a enviar un mensaje en nombre de un Bot…
En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
Esta web usa cookies.