![]() |
![]() |
![]()
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: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
baza sprawdza spojnosc danych w trybie transakcyjnym jezeli masz 2 tabele np. ludzie (1 - jas 2 - malgosia) i zwierzeta (1- kot - 1(id osoby), 2.-pies -1) to jeżeli zmienisz właściciela kota z 1 na 2 to i tak baza jest w stanie spojnym. Rekordy wiązane sa na podstawie realacji czy istnieje a nie na zasadzie logicznej bo o logice aplikacji decyduje twórca warstwy biznesowej
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 03:49 |