Un dia quise vaciar una tabla pero me salió un error que decÃa que esa tabla tenia llaves foráneas y entonces no pudo completar la acción y eso esta bien por que si borras datos con llaves foráneas referenciadas, la integridad de tus datos no va ser muy confiable entonces, esta bien que salga ese error, pero lo malo es que como estaba en un ambiente de desarrollo, queria borrar los datos para resetear la base de datos ya que los datos de prueba que ya tenia, tenian que ser eliminados entonces, decidi googlear el problema y encontre la solución mas optima.
este es el error:
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (mytest.instance, CONSTRAINT instance_ibfk_1 FOREIGN KEY (GroupID) REFERENCES mytest.mygroup (ID))
Para solucionarlo tendremos que tener permisos para poder ejecutar el siguiente comando:
SET FOREIGN_KEY_CHECKS = 0;
Despues ejecutar tus TRUNCATE
TRUNCATE table1;
Y al final volver a activar la bandera que revisa las constrains.
SET FOREIGN_KEY_CHECKS = 1;
Ya con eso resuelves el problema de que no te deja borrar tus datos de una tabla con constrains..
Link de referencia stackoverflow