Seite 1 von 1

Termine speichern upgedatete DB schlägt fehl

Verfasst: 4. Feb 2011, 09:11
von Jochen
Beim speichern von Terminen erhalte ich folgende Fehlermeldung. Das Problem tritt nur bei einer Upgedateten DB auf.
S Q L - E R R O R

CODE: 1452
Cannot add or update a child row: a foreign key constraint fails (`bdkjdb`.`adm_date_role`, CONSTRAINT `adm_FK_DTR_DAT` FOREIGN KEY (`dtr_dat_id`) REFERENCES `adm_dates` (`dat_id`))

B A C K T R A C E

FILE: adm_program/system/db/mysql.php
LINE: 210
CALL: DB->db_error()

FILE: adm_program/system/db/mysql.php
LINE: 80
CALL: MySqlDB->db_error()

FILE: adm_program/system/classes/table_access.php
LINE: 347
CALL: MySqlDB->query()

FILE: adm_program/system/classes/table_date.php
LINE: 246
CALL: TableAccess->save()

FILE: adm_program/modules/dates/dates_function.php
LINE: 292
CALL: TableDate->save()

Verfasst: 11. Feb 2011, 19:41
von fasse
Den Fehler kann ich nachvollziehen.

Allerdings scheint die Lösung nicht ganz so einfach ...

Verfasst: 11. Feb 2011, 21:05
von taba
Der Fehler tritt bei mir nicht auf. Ich hab ein Update von 2.09 auf 2.2 gemacht...

Gruß
taba

Verfasst: 16. Feb 2011, 21:23
von fasse
So, hat ein bischen gedauert, aber jetzt hab ich die Ursache für dieses Problem gefunden.

In der betroffenen Datenbank, welche hier aktualisiert wurde, befinden sich nur MyISAM-Tabellen. Führt man nun das Update auf einer InnoDB-fähigen Datenbank durch, so werden jetzt Constraints angelegt. Erst beim Insert merkt er das was nicht passt.

Entweder müssen beide Systeme MyISAM bleiben, oder beide auf InnoDB aktualisiert werden.