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.
  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
Uppdaterad


Inga kommentarer

Skriv en kommentar

Återstående antal tecken: 768

Uppdaterad: 2017-08-10 11:53
Copyright © 2009-2024 - tunisempire.com - All Rights Reserved RSS Feed Sitemap