Pasar al contenido principal
Monoforms Web Development
CAPTCHA
12 + 7 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Main navigation

  • Home
  • Sobre mi
  • Contacto
CAPTCHA
2 + 0 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Sobrescribir enlaces de ayuda a la navegación

  1. Home
  2. Error Al Truncar Tablas En Mysql: Cannot Truncate A Table Referenced In A Foreign Key Constraint

Error al truncar tablas en mysql: Cannot truncate a table referenced in a foreign key constraint

By peter, 22 Julio, 2014

Tratando de truncar una tabla en INNODB me salio el siguiente error:

Cannot truncate a table referenced in a foreign key constraint

Este error se produce porque hay una restricción de clave externa (foreign key constraint) en la tabla que estás intentando truncar y eso impide que se pueda llevar a cabo la operación.

La restricción de clave externa es un mecanismo que asegura la integridad referencial de la base de datos, lo que significa que se garantiza que los datos en una tabla que hacen referencia a otra tabla existan realmente en esa otra tabla. Al truncar la tabla, se eliminarían todos los datos que hay en ella, incluyendo los que están referenciados por otras tablas. Si la restricción de clave externa permitiera esta eliminación, se perdería la integridad referencial de la base de datos.

Consultando, encontré que desabilitando la protección de llaves foraneas se podia truncar la tabla.

   
      SET FOREIGN_KEY_CHECKS = 0;
      TRUNCATE table;
      SET FOREIGN_KEY_CHECKS = 1;
   

Pero a mi no me ha gustado eso de romper la integridad así que opté mejor por un delete:

  
     Delete from table;
  


Sin el where porque me importaba borrar todos los datos. 

Por otra parte, primero debes eliminar las restricciones de clave externa que la referencian a tu tabla. Puedes hacer esto usando la siguiente sintaxis:

   
    ALTER TABLE table_name DROP FOREIGN KEY constraint_name;
   

Donde table_name es el nombre de la tabla que quieres truncar y constraint_name es el nombre de la restricción de clave externa que quieres eliminar. Después de eliminar la restricción, puedes truncar la tabla y luego volver a crear la restricción si lo deseas.

mysql

Comentarios

Contenido reciente

  • Como limpiar usings sin usar en Rider
  • Instalando apache, mysql y php en Ubuntu
  • Cómo liberé 12GB en mi servidor y reviví mi sitio web (sin llorar… mucho)
  • ¿Que son los sitios web agregadores y los anuncios clasificados?
  • Mi Experiencia con Docker, Podman y Kubernetes
  • Lo más destacado del AWS User Group Puebla
  • Docker: Ignorar el directorio vendor en un proyecto de Go.
  • Instala Kubernetes en Ubuntu 22.04 para pruebas
  • Serverless, Lambda y Kubernetes: Fundamentos para la nube
  • Ejecuta tu lambda de Golang en AWS SAM de forma local

Recomendados

  • Biodiv
  • Medium
RSS feed

Política de privacidad

Términos de uso

Recomendados

  • Biodiv
  • Medium
Powered by Drupal

Monoforms ©2021 Created by Pedro Rojas Reyes