Fel vid TRUNCATE av tabell i MySQL
Uppdaterad Söndagen den 23 Januari 2011 15:30:38
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.
Länkar
Ändra AUTO_INCREMENT
Publiserad Söndagen den 23 Januari 2011 15:30:38
Uppdaterad Söndagen den 23 Januari 2011 15:30:38
Inga kommentarer