CREATE TABLE IF NOT EXISTS `kategorie` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nazwa` char(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `produkty` ( `id` int(11) DEFAULT NULL AUTO_INCREMENT, `kategoria` int(11) DEFAULT NULL, `nazwa` varchar(10) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`kategoria`) REFERENCES kategorie(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
dodałem przykładowe rekordy
kategorie 1 i 2
i 5 przykładowych produktów
powinno to chyba działać na tej zasadzie, że jak zmienie id w kateogriach to kolumna kategoria w produktach zmieni się automatycznie bo są powiązane kluczem obcym....
otrzymuje natomiast błąd: #1451 - Cannot delete or update a parent row: a foreign key constraint fails (`test`.`produkty`, CONSTRAINT `produkty_ibfk_1` FOREIGN KEY (`kategoria`) REFERENCES `kategorie` (`id`))
W takim razie poco jest ten klucz obcy ?