Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z kluczem obcym
Forum PHP.pl > Forum > Przedszkole
Xart
Witam mam tabelę w bazie danych typu InnoDB:

  1. CREATE TABLE IF NOT EXISTS `kategorie` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  4. `opis` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  5. `podkategorie` char(3) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT 'NIE',
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  8.  
  9. CREATE TABLE IF NOT EXISTS `podkategorie` (
  10. `id` int(11) DEFAULT NULL AUTO_INCREMENT,
  11. `nazwa` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  12. `opis` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  13. `kategoria` int(11) DEFAULT NULL,
  14. PRIMARY KEY (`id`),
  15. FOREIGN KEY (`kategoria`) REFERENCES kategorie(`id`) ON DELETE CASCADE ON UPDATE CASCADE
  16. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
  17.  
  18. CREATE TABLE IF NOT EXISTS `produkty` (
  19. `id` int(11) DEFAULT NULL AUTO_INCREMENT,
  20. `kategoria` int(11) DEFAULT NULL,
  21. `podkategoria` int(11) DEFAULT NULL,
  22. `nazwa` varchar(100) NOT NULL,
  23. `typ` varchar(30) NOT NULL DEFAULT 'Inne',
  24. PRIMARY KEY (`id`),
  25. FOREIGN KEY (`kategoria`) REFERENCES kategorie(`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  26. FOREIGN KEY (`podkategoria`) REFERENCES podkategorie(`id`) ON DELETE CASCADE ON UPDATE CASCADE
  27. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


Podczas dodawania rekordu do bazy danych przes skrypt PHP podając prawidłowe parametry klucza obcego wyskakuje błąd:
Errormessage: Cannot add or update a child row: a foreign key constraint fails (`www`.`produkty`, CONSTRAINT `produkty_ibfk_1` FOREIGN KEY (`kategoria`) REFERENCES `kategorie` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)

Podkategoria i kategoria są na 100% dobre bo sprawdzałem ręcznie i w dodatku czytam je z bazy skryptem...

Da się to jakoś naprawić ?
bpskiba
zapewne da się naprawić smile.gif

1 W tabeli kategorie musi być jakiś rekord
2 w tabeli podkategorie musi być jakiś rekord
3 dopiero wtedy można dodać rekord do tabeli produkty

działa sprawdziłem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.