Skocz do zawartości

Błąd dodawania danych gdy ustawiony Klucz obcy


radca78

Rekomendowane odpowiedzi

Witam

Mam 3 tabele.

1. klienci (klientid-klucz glw., pole1, pole2...)

2. ksiazki (ksiazkaid-klucz glw., klientid-klucz obcy do klientid z tabeli klienci, pole1, pole2...)

3. opisy (ksiazkaid-klucz obcy do ksiazkaid z tabeli ksiazki)

Bez ustawionych kluczy obcych, wszystkie dane moge dodawac. Po ustawieniu jak ponizej komenda (w phpmyadmin tez sprawdzalem) nie moge dodac danych:

alter table ksiazki add foreign key (klientid) referencs klienci(klientid)

oraz:

alter table opisy add foreign key (ksiazkaid) referencs ksiazki(ksiazkaid)

Po polaczeniu dodaje w ten sposob (bez kluczy obcych dziala):

$wynik = mysql_query("INSERT INTO klienci (pole1, pole2,...) VALUES ('$value1', '$value2, ...')");

$wynik2 = mysql_query("INSERT INTO ksiazki (pole1, pole2,...) VALUES ('$value1', '$value2, ...')");

$wynik3 = mysql_query("INSERT INTO opisy (pole1, pole2,...) VALUES ('$value1', '$value2, ...')");

Po takim dodaniu - zostaje dodana tylko warosc zmiennej $wynik (bez znaczenia jest w jakiej kolejności dodaje.). Zmienne wynik2 i 3 zwracaja blad:

Cannot add or update a child row: a foreign key constraint fails

Moze macie jakies sugestie co do tych kluczy (jak je usowam to jest ok). Tabele oczywiscie innodb.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności