![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 27.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam takie pytanie zainstalowałem sobie „mysql-4.1.13-win32” (działa spoko) i jeszcze „MySQL Administrator” (także działa dobrze). Mam tylko taki oto problem przy tworzeniu relacji a konkretniej chodzi o klucz obcy. Przykład tworzę dwie tabele z następującymi polami:
Tabela: „student” pola: „id”, „imie”, „nazwisko”. „id” jest kluczem głównym. Tabela2: „egzaminy” pola: „id”, „nazwa-egz”, „miejsce”, „id_studenata”. „id” klucz główny „id_studenta” klucz obcy z tabeli „student”. A więc gdy mam już dwie tabelę przechodzę do tabeli „egzaminy (podwójne szybkie klikniecie na nazwie tabeli). Aby zrobić relacje domyślam się, że powinno wyglądać to następująco: Przechodzę do dolnej środkowej zakładce „Foreign Keys” naciskam znak plus, wpisuję nazwę (lub zostawiam tą zaproponowaną) „FK_egzaminy_1”. W polu „Foreign Key Settings”, z „Ref. Table” wybieram „student” w opcji „columns” wybieram „id_student” natomiast opcji „Reference Column” wybieram „id”. I powiecmy, że w „On Detale” wybiorę „Cascade” naciskam przycisk „Appy Changes” pojawia się okienko z potwierdzeniem “Are you sure you want to execute the following SQL command to apply the chenges to the table?” „ ALTER TABLE `baza`.`egzaminy` ADD CONSTRAINT `FK_egzaminy_1` FOREIGN KEY `FK_egzaminy_1` (`id_studenta`) REFERENCES `student` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT; „ Naciskam „Execute” Niestety pojawia się taki oto komunikat: Terror Chile executing query. ALTER TABLE `baza`.`egzaminy` ADD CONSTRAINT `FK_egzaminy_1` FOREIGN KEY `FK_egzaminy_1` (`id_studenta`) REFERENCES `student` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT; MySQL Error Number 1005 Can’t create table ’.\baza\#sql-500_7a.frm’(error: 150) ===================================================== Już sobie poradziłem (głupia pomyłka) po prostu wartość pola dla klucza obcego była ustawiona na Varchar natomiast klucz obcy był typu INTEGER i stąd ten błąd. Dla usprawiedliwienia dodam, że to pierwszy tego typu program, jaki używam, (nie wspominając o MsAccess). Temat można skasować ![]() Ten post edytował ernest210 27.07.2005, 11:49:28 |
|
|
![]()
Post
#2
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
na przyszlosc wzelkie zapytania dawaj w formie
Kod [SQL]kod sql [/SQL]
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
mam to samo - prawie, naciskam execute i nic, zero błędów klucz się nie tworzy - tabele standardowe MyISAM, pola int (3) w tym jedno z nich jest autoincrement.
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(KRIS_PL @ 2005-07-29 10:04:13) mam to samo - prawie, naciskam execute i nic, zero błędów klucz się nie tworzy - tabele standardowe MyISAM, pola int (3) w tym jedno z nich jest autoincrement. ![]() tabele musza byc typu InnoDB a pola na ktore zakladane sa klucze obce musza byc indeksowane - byc moze w tym jest przyczyna |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
zrobiłem tak - dalej mam błąd 150
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
mozesz podac strukture bazy danych oraz zapytania tworzace relacje gdyz prawdopodobnie masz gdzies blad przy tworzenie relacji....
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mhs @ 2005-07-29 11:15:07) mozesz podac strukture bazy danych oraz zapytania tworzace relacje gdyz prawdopodobnie masz gdzies blad przy tworzenie relacji.... jak się zalogowałem przez najnowszy phpMyAdmin to mi wyświetlił że, PMA Database ... błąd[ Dokumentacja ] Ogólne funkcje relacyjne wyłączone mam serwer w wersji 3 teraz robie upgrade do 4.. coś tam - może tamta wersja nie obsługiwała relacji.. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
po Twoim poscie wnioskuje, ze raczej na pewno nie masz dla tabel typu InnoDB dla ktorych tworzysz relacje
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mhs @ 2005-07-29 13:38:51) po Twoim poscie wnioskuje, ze raczej na pewno nie masz dla tabel typu InnoDB dla ktorych tworzysz relacje błąd nie występuje w wersji serwera 4.1.12a - wszystko działa dobrze za to w wersji 4.0.18 dzieją sie jakieś krzaki w momencie zakładania tabeli innodb wywala błąd, jak zmieni się rodzaj tabeli z myisam na innodb to jeden soft pokazuje że tabela jest innodb następny że myisam.. kosmos, zmieniłem serwer na 4.1.12a i jest ok (mówię tu o wersjach pod windows), w wersji 3.23.58 pod linuxem dostaje przy próbie założenia tabeli InnoDB taki błąd CLICK Ten post edytował KRIS_PL 1.08.2005, 09:52:00 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
mozesz pokazac kod sql?
byc moze na 4.0.x masz uruchomiony inny serwer (a, o ile sie nie myle to nie wszystkie serwery obsluguja inndb) bledu nie widze, link nie dziala |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mhs @ 2005-08-01 09:07:35) mozesz pokazac kod sql? byc moze na 4.0.x masz uruchomiony inny serwer (a, o ile sie nie myle to nie wszystkie serwery obsluguja inndb) bledu nie widze, link nie dziala link działa - może chwilowo coś było nie tak masz tu w innym miejscu http://214kris.w.interia.pl/error1046.JPG |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.07.2025 - 16:55 |