![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czy klucze obce i związki między tabelami w mysql w ogóle działają ?
Utworzylem klucz obcy wedlug wzoru wykonujac zapytanie w phpmyadminie (bo u mnie nie ma nigdzie widoku relacyjnego zeby to zrobic recznie): ALTER TABLE c ADD CONSTRAINT nazwa_ograniczenia FOREIGN KEY (d) REFERENCES b(a); c - tabela w ktorej ma byc klucz obcy d - rekord tabeli b. kluczem obcym b - tabela z kluczem glownym a - klucz glowny do ktorego laczy klucz obcy Obie tabele ustawiłem na InnoDB. W phpmyadminie w jednej tabeli dodalem wiersz wpisujac w kolumnie, ktora jest kluczem obcym ID, ktore nie wystepuje w drugiej tabeli w kolumnie bedacej kluczem podstawowym i wiersz zostal dodany (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) A przeciez nie powinien, dlaczego wiec zostal dodany ? --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Już chyba mam przyczynę: najpierw należy zmienić typ tabel a potem zrobić związek między nimi. Ja najpierw zrobiłem związek a potem zmieniłem typ tabel i dlatego związek nie działał. Ten post edytował nieraczek 26.10.2008, 08:54:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 2.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
podłączam się do pytania:
Stworzyłam bazę za pomocą phpMyAdmin. Mam (m.in) takie tabele: nauczyciel(id_nauczyciela, ... , nazwa_przedmiotu, id_przedmiotu) przedmiot(id_przedmiotu, nazwa_przedmiotu) Utworzyłam w tabeli nauczyciel klucze obce do id_przedmiotu i nazwy_przedmiotu. Jednak kiedy w tabeli przedmiot zmieniam wartość id_przedmiotu to nie zmienia się ona w tabeli nauczyciel :/ Myślałam, że ten klucz obcy tak właśnie działa, ale coś mi nie gra tylko nie wiem co :/ Czy to błąd w myśleniu? Może w tabeli nauczyciel nic nie ma prawa się zmieniać? (w/w warunki spełnione) Czy to może chodzi o to, że klucz obcy może być tylko do klucza podstawowego utworzony? edit: mam ustawione opcje update cascade ... Ten post edytował fisz 2.01.2009, 23:05:48 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 17:25 |