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ć
