Gamla frågor, men följande är en möjlig väg runt. Flytta i princip data istället för att byta namn på tabellerna. Du måste naturligtvis se till att den nya datan följer reglerna för främmande nyckel.
SET foreign_key_checks = 0;
CREATE TABLE IF NOT EXISTS foo_old LIKE foo;
INSERT INTO foo_old SELECT * FROM foo;
TRUNCATE foo;
INSERT INTO foo SELECT * FROM foo_new;
Se till att du kör det som en fråga så att foreign_key_checks gäller för det hela. Hoppas detta hjälper.