ďťż
 
Klucz obcy ďťż
 
Klucz obcy
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Klucz obcy



John Łejn - 10-09-2006 00:16
Klucz obcy
  Mam małe pytanie czy kluczu ocych w tabeli moze byc wiecej niz jeden?
Otóż. mam tapele prac, gdzie jest id, imie, nazwisko, id_adress, id_um. Id -
primary key.
Druga z adres -z adresmi gdzie id_adress jest kluczem głownym.
trzecia natomiast to um, gdzir id_um jest głównym i teraz, tworzac pierwsza
tabele napisałem:
Create table prac (id int NOT NULL AUTO_INCREMENT, imie char(20), nazwisko
char(35), id_adres int, PRIMARY KEY(id), Foreign key (id_
adress) REFERENCES adres (id_adres) ON UPDATE CASCADE); Kluczem pbcym jest
id_adress,
nastepnie po stworzeniu trtzeciej tabeli pisze:
Alter TABLE prac MODIFY column id_umiejetnosci int FOREIGN KEY (id_umiejetnosci)
REFERENCES umiejetnosci (id_umiejetnosci) ON UPDATE CASCADE;

i wyskakuje mi bład:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to
use near 'foreign key (id_umiejetnosci) references umiejetnosci
(id_umiejetnosci) ON UPDAT' at line 1

siedze juz nad tym troche czasu i nic wyłapac nie moge...
Moze ktos bedzie wiedział w czym tkwi problem?

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Jacek Czapla - 10-09-2006 00:16

  John Łejn napisał(a):
> Mam małe pytanie czy kluczu ocych w tabeli moze byc wiecej niz jeden?

Na pewno. Przecież każda tabela łącząca w relacji wiele-do-wielu ma 2
klucze obce.

> Otóż. mam tapele prac, gdzie jest id, imie, nazwisko, id_adress, id_um. Id -
> primary key.
> Druga z adres -z adresmi gdzie id_adress jest kluczem głownym.
> trzecia natomiast to um, gdzir id_um jest głównym i teraz, tworzac pierwsza
> tabele napisałem:
> Create table prac (id int NOT NULL AUTO_INCREMENT, imie char(20), nazwisko
> char(35), id_adres int, PRIMARY KEY(id), Foreign key (id_
> adress) REFERENCES adres (id_adres) ON UPDATE CASCADE); Kluczem pbcym jest
> id_adress,
> nastepnie po stworzeniu trtzeciej tabeli pisze:
> Alter TABLE prac MODIFY column id_umiejetnosci int FOREIGN KEY (id_umiejetnosci)

Może ... ADD FOREIGN KEY ...

--
*Jacek Czapla* //usuń ".pułapka" z adresu email
www.ASIT.pl
http://www.busyonline.pl - Rezerwacja miejsc w busach




Łejn - 10-09-2006 00:59

  robie tak, tworze trzy tablice:

CREATE TABLE Adresy (
Id_adres INT UNSIGNED NOT NULL AUTO_INCREMENT,
kod VARCHAR(10),
miasto VARCHAR(45),
ulica VARCHAR(45),
nr_domu VARCHAR(45),
Nr_telefonu VARCHAR(45),
PRIMARY KEY (Id_adres));

CREATE TABLE Umiejetnosci (
idUmiejetnosci INT UNSIGNED NOT NULL AUTO_INCREMENT,
stanowisko VARCHAR(45),
wyksztalcenie VARCHAR(45),
jezyki VARCHAR(45),
specjalnosc VARCHAR(45),
atrybuty VARCHAR(250),
PRIMARY KEY (idUmiejetnosci));

przy tworzeniu trzeciej:
CREATE TABLE Pracownicy (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
imie VARCHAR(45),
nazwisko VARCHAR(45),
id_adresy INT NOT NULL,
id_umiejetnosci INT NOT NULL,
PRIMARY KEY (id),
index id_adresy_index (id_adresy),
CONSTRAINT id_adres FOREIGN KEY id_adres (id_adresy)
REFERENCES Adresy (Id_adres),
index id_umiejetnosci_index (id_umiejetnosci),
CONSTRAINT id_umiejetnosci FOREIGN KEY id_umiejetnosci (id_umiejetnosci)
REFERENCES Umiejetnosci (idUmiejetnosci) );

Wyskakuje mi błąd;
ERROR 1005 (HY000): Can't create table '.\test\pracow.frm' (errno: 150);
wyczytałem ze to indeksy... chyba;
wiec je zadeklarowałem.. ale tez cos chyba nie dobrze bo nadalowy bład wyskakuje
czy ktos potrafił by pomóc,
....tyłek mi sie juz pali, czasu coraz mniej a tu co chwile cos ehh

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl




Łukasz - 13-09-2006 02:07

 
Użytkownik "John Łejn" <darkos007@op.pl> napisał w wiadomości
news:5ba0.0000014e.44fc3a6b@newsgate.onet.pl...

> Alter TABLE prac MODIFY column id_umiejetnosci int FOREIGN KEY
> (id_umiejetnosci)
> REFERENCES umiejetnosci (id_umiejetnosci) ON UPDATE CASCADE;
>
Nie dodawaj klucza obcego do kolumny tylko do tabeli (dodajesz wtedy klucz
nazwany jawnie)
coś a'la ALTER TABLE XXX ADD CONSTRAINT YYY FOREIGN KEY...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [pgsql] Klucz glowny bedacy referencja??? Klucz złożony - prosba o wzor create Klucz główny tekstowy czy int? Złączenie i klucz złożony MySQL - klucz glowny klucz po uniqueidentifier teoria, klucz obcy jako glowny oraz hibernate Postgres, widok i klucz obcy do niego Sortowanie tabel [oracle] dbms_utility.format_error_backtrace
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • atanvarne633.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com