tunisempire.com

my own empire

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.
  1. 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.
  2. 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

Skriv en kommentar

Återstående antal tecken: 768

Rotera RSS Feed Sitemap  
Uppdaterad: 2012-01-08 00:54
Copyright © 2009-2012 - tunisempire.com - All Rights Reserved
Valid XHTML 1.1 Valid CSS!