Fel vid TRUNCATE av tabell i MySQL
Uppdaterad
Får "Cannot truncate a table referenced in a foreign key constraint" felmeddelande när en tabell ska tömmas i MySQL.
Problem
Efter jag uppgraderat till MySQL 5.5 fick jag följande felmeddelande vid tömning av en tabell:#1701 - Cannot truncate a table referenced in a foreign key constraint
Orsak
I MySQL 5.5 eller högre är inte TRUNCATE TABLE tillåtet för InnoDB tabeller som har referenser med främmande nycklar.Lösning
Det finns två lösningar på detta problem.- För enkel uppgradering är att skriva om frågan till att använda DELETE istället för TRUNCATE. Men AUTO_INCREMENT nollställs inte av DELETE som TRUNCATE, så du måste även göra detta om du behöver det.
- Man kan använda TRUNCATE om kontrollen av främmande nycklar stängs av. Detta gör man med kommandot SET foreign_key_checks = 0.