Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zwiazek klucz obcy - klucz podstawowy nie działa
nieraczek
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fisz
post
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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 17:25