MySQL Fremdschlüssel – Fehler 1452

Fehlermeldung: #1452 – Cannot add or update a child row: a foreign key constraint fails

Tabellen sind ständig im Wechsel, keine Datenbank bleibt wie sie anfangs war. Beim Anlegen eines neuen Fremdschlüssels zwischen einem neuen Tabellenfeld und einer neuen Tabelle kam der Fehler Nr.1452 auf. Stackoverflow befragt, verschiedene Tricks ausprobiert, letzten Endes hat folgendes funktioniert:

  • Löschen der neuen Tabellenspalte
  • Neue Tabelle nicht weiter verändern
  • Alter Table Befehl um Add Column und Add Constraint ergänzen
  • Done.

ALTER TABLE `alte-Tabelle` ADD COLUMN `neue-Spalte` INTEGER,
ADD CONSTRAINT `neuer-Fremdschlüssel` FOREIGN KEY ( `neue-Spalte` ) REFERENCES `neue-Tabelle` ( `id` ) ;

Der Code um alles rückgängig wieder herzustellen:

ALTER TABLE `alte-Tabelle` DROP FOREIGN KEY neuer-Fremdschlüssel,
DROP COLUMN `neue-Spalte`;
DROP TABLE `neue Tabelle`;

 

http://dev.mysql.com/doc/refman/5.1/de/alter-table.html

Advertisements

Kommentare

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s