
Mój problem polega na tym, że gdy tworzę dwie tabele wraz z relacją jeden do wielu to jakoś nie widzę efektu działania tejże relacji. Przejdźmy do konkretów. Oto przykładowe tabele, które tworzę w bazie:
CREATE TABLE adres ( id_adres INT NOT NULL AUTO_INCREMENT, ulica VARCHAR (25) NOT NULL, kod_pocztowy VARCHAR (6) NOT NULL, miejscowosc VARCHAR (25) NOT NULL, PRIMARY KEY (id_adres) ); CREATE TABLE pracownik ( id_pracownik INT NOT NULL AUTO_INCREMENT, imie VARCHAR (15) NOT NULL, nazwisko VARCHAR (20) NOT NULL, id_adres INT NOT NULL, PRIMARY KEY (id_pracownik), CONSTRAINT FK_adres2 FOREIGN KEY (id_adres) REFERENCES adres (id_adres) );
Nie wiem czy dobrze rozumiem ideę relacji tych dwóch tabel (wyprowadźcie mnie ewentualnie z błędu), ale wydaje mi się, że nie powinno się dać dodać rekordu do tabeli 'pracownik' jeśli zawierał będzie identyfikator 'id_adres', którego nie ma w tabeli 'adres'.
A tutaj niestety daje się dodać taki rekord.
Podpowiedzcie ja zrobić, żeby nie dało się dodać takiego rekordu no i aby dane kaskadowo usuwały się i aktualizowały.
Moja wersja serwera to: 4.0.24_Debian-10sarge2-log
Pozdrawiam i z góry dziękuję za pomoc.