[MySQL] Alte Constraints löschen

Tim Bureck

Erfahrenes Mitglied
Hallo zusammen,

habe das Problem, dass ich beim Import meiner SQL Struktur folgenden Fehler bekomme:

SQLSTATE[HY000]: General error: 1005 Can't create table 'csmtools.#sql-2a0_7e' (errno: 121)

Der Query, der fehlschägt ist ein ALTER TABLE, der einen Foreign Key erstellt:

Code:
ALTER TABLE group_permission 
  ADD CONSTRAINT group_permission_category_id_group_permission_category_id 
  FOREIGN KEY (category_id) 
    REFERENCES group_permission_category(id) 
    ON DELETE RESTRICT;

Ich habe gelesen, dass dieser Fehler auftritt, wenn eine Table oder ein Constraint bereits existiert, allerdings konnte ich nicht ermitteln, wie ich den alten Constraint denn löschen könnte. Hat da jemand eine Idee, ohne gleich das ganze DBMS zu zerstören oder neu zu machen? ;)

Achso und bevor ein Lösungsvorschlag a lá anderen Constraintnamen kommt... ;) Die Struktur wird von Doctrine erzeugt, da wäre es doch lästig bei jedem neuen generieren den Namen zu ändern. :)

PS: Hab ich schon erwähnt, dass die benutzte Engine InnoDB ist? Sonst macht das mit den Constraints ja wenig Sinn ;D
 
Moin Bureck,

leider ist meine Kristallkugel etwas verstaubt....
Vielleicht könntest du folgende Daten nachliefern:
Komplettes Datenbankschema zumindest aber die gesamten Creates/Alters der betroffenen Tables, ich vermute mal group_permission, group_permission_category.

WICHTIG!
Bitte angeben wo die Commit-Groups sind und/oder alles in einer Transaction gemacht wird.

Der Fehler (nr. 121) deutet auf einen Index Mismatch hin. Aber ohne die Tabellenstruktur kann man dazu nichts sagen.

Gruss
SK
 
Zurück