Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Powiązanie kluczem obcym
moraw2008
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 21.02.2008

Ostrzeżenie: (0%)
-----


Witam,

Działam na darmowym koncie na serverze w www.vixo.pl, utoworzyłem tam kilka tabel i mechanizm obsługujący je napisany w PHP. Potrzebuje utowrzyć teraz powiązanie dwóch tabel za pomocą klucza obcego. Przeszperałem w sieci jak to zrobić w przypadku MySql (stacjonarnie działam testowo na MS SQL Serverze i tam jest to proste). Znalazłem wskazówkę:

Cytat
Aby móc korzystać z kluczy obcych w MySQL musisz przede wszystkim podczas tworzenia tabeli ustawić mechanizm składowania danych na InnoDB - bez tego ani rusz. Zazwyczaj domyślnie phpMyAdmin jest tak skonfigurowany, że jako mechanizm składowania dla tabel/bazy wybiera MyISAM. Jeśli już masz tabele utworzone mechanizm składowania dla tabeli można bardzo łatwo zmienić wchodząc w zakładkę Operacje dla danej tabeli w box'ie Opcje tabeli wybierasz sobie mechanizm składowania jako InnoDB. Musisz pamiętać żeby ten mechanizm składowania zadeklarować dla obu tabel których relacja dotyczy.

Drugim elementem który jest pośrednio wymagany to indeksy istniejące w obydwu tabelach. Jeśli relacja ma zachodzić pomiędzy kolumną A w tabeli 1 a kolumną B w tabeli 2 to zarówno kolumna A jak i kolumna B muszą być w całości lub części składowymi indeksu (jednego ale mogą być też kilku) odpowiedniej tabeli.

Jeśli to masz możesz przystąpić do tworzenia relacji pomiędzy kolumnami. Wchodząc na strukturę wybranej tabeli (zakładka Struktura) masz trzy linki: Widok do druku, Widok relacyjny i Znaliza zawartości. Klikając w Widok relacyjny przejdziesz do formularza w którym możesz ustawiać relacje pomiędzy kolumnami zindeksowanymi z wybranej


U mnie nie ma możliwości zmiany mechanizmu składowania dla tabel/bazy z MyISAM na InnoDB, nie ma takiej opcjacji na liście rozwijalnej wyboru mechanizmów składowania w ustawieniach...
Może mi ktoś pomóc?
Pozdrawiam i z góry dzięki.
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. ALTER TABLE t1 ENGINE = InnoDB;

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Go to the top of the page
+Quote Post
moraw2008
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 21.02.2008

Ostrzeżenie: (0%)
-----


HEj, dzięki za odp.

OD tego zacząłęm już wcześniej kombinowanie.
Wykonałem też i takie polecenie SQL - zostało zaakcpetowane, ale w ustawieniach mechanizm składowania danych nie zmienił sie na InnoDB, widnieje dalej MyISAM.. tak musi zostać?
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Powinno Ci pokazać innodb w kolumnie TYPE w PMA.
https://www.activecollab.com/forums/post/2746/ zobacz sobie czy jest włączone innodb

Ten post edytował skowron-line 26.02.2013, 09:37:14
Go to the top of the page
+Quote Post
moraw2008
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 21.02.2008

Ostrzeżenie: (0%)
-----


ok, dzięks.
Popatrze po pracy i wrazie co jeszcze dopytam.
Pozdrawiam!
Go to the top of the page
+Quote Post

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: 22.08.2025 - 19:06