
Zadaniem na dziś było zaktualizowanie tabelki pod jeden ze skryptów użytkowych, który jest w trakcie przygotowania. Moim zadaniem było utworzenie nowej tabelki a następnie stworzenie relacji z nowoutworzonej tabelki do jednej z istniejących. Niestety phpMyAdmin uporczywie wykrzykiwał błąd, z którym niestety nie miałem pomysłu jak sobie poradzić. Jak się później okazało rozwiązanie było możliwie najbardziej banalne (…czytaj więcej)
A oto kod błędu:
Cannot add or update a child row: a foreign key constraint fails(...)
Chodziło o utworzenie klucza obcego w jednej z tabelek. Całość operacji chciałem przeprowadzić za pomocą phpMyAdmin. Po wielu próbach i przeczytaniu wielu obszernych for, ktoś podsunał pomysł.
Przykład?
Tabelka ksiazki
id_ksiazki | ksiazka_autor | tytul
—————————
1 | Stephen King | Lśnienie
Tabelka kategorie
id_kategorii | ksiazki.id_ksiazki | kategoria
—————————————-
1 | 1 | Horrory
Zanim utworzymy klucz obcy w tabelce kategoria musi się znajdować pole które będziemy powiązywać – w naszym wypadku ksiazki._id_ksiazki. Następnie dodajemy przykładowy rekord do tabelki kategorie, gdzie wpisujemy w pole ksiazki.id_ksiazki wartość prawidłową znajdująca się w tabelce ksiazki.
Dopiero po dodaniu tego wpisu, phpMyAdmin pozwoli nam na utworzenie klucza obcego a irytujący błąd
Cannot add or update a child row: a foreign key constraint fails(...)
przestanie się pojawiać :)



