Forum » Programiranje » SQL problem
SQL problem
dejc009 ::
no unique index found for the referenced field of the primary table -->kaj moram narediti??
koda za realcije:
ALTER TABLE Pridevnik_K
ADD CONSTRAINT fk_Pridevnik_K FOREIGN KEY (ID) REFERENCES Pridevniki (ID_Pridevnik),
CONSTRAINT fk_Pridevnik_K FOREIGN KEY (ID) REFERENCES Osnova (ID_Pridevnik);
koda tabele:
CREATE TABLE Pridevnik_K (
ID AUTOINCREMENT NOT NULL,
Osnova VARCHAR(50),
Tip INTEGER,
Tip_Str VARCHAR(50),
Določni INTEGER,
Nedoločni INTEGER,
Lastnost VARCHAR(50),
Primernik VARCHAR(50),
Stopnjevalni_prislov VARCHAR(50)
);
prosim za pomoč
koda za realcije:
ALTER TABLE Pridevnik_K
ADD CONSTRAINT fk_Pridevnik_K FOREIGN KEY (ID) REFERENCES Pridevniki (ID_Pridevnik),
CONSTRAINT fk_Pridevnik_K FOREIGN KEY (ID) REFERENCES Osnova (ID_Pridevnik);
koda tabele:
CREATE TABLE Pridevnik_K (
ID AUTOINCREMENT NOT NULL,
Osnova VARCHAR(50),
Tip INTEGER,
Tip_Str VARCHAR(50),
Določni INTEGER,
Nedoločni INTEGER,
Lastnost VARCHAR(50),
Primernik VARCHAR(50),
Stopnjevalni_prislov VARCHAR(50)
);
prosim za pomoč
BlueRunner ::
Če uporabljaš zunanje ključe, morajo ti biti označeni kot ključi, sicer njihova uporaba ni možna. Sistem te je prijazno opozoril na to napako. Rešitev je načeloma ta, da storiš natančno to, kar ti je povedal, da je težava: dodaš UNIQUE KEY omejitev.
V tvojem primeru pa je težava verjetno v temu, da poskušaš vzpostaviti zunanji ključ na polju ID_Pridevnik v relaciji Osnova. V tej relaciji pa to verjetno ni ključ. Bodisi si napisal napačno ime polja, bodisi še ne razumeš relacij in imaš zato tudi slabo relacijsko shemo.
V tvojem primeru pa je težava verjetno v temu, da poskušaš vzpostaviti zunanji ključ na polju ID_Pridevnik v relaciji Osnova. V tej relaciji pa to verjetno ni ključ. Bodisi si napisal napačno ime polja, bodisi še ne razumeš relacij in imaš zato tudi slabo relacijsko shemo.
BlueRunner ::
Če je ime polja pravilno, potem imaš narobe narisano shemo, ali pa imaš "čudno" shemo z 1...1 relacijami. Opiši kaj bi rad dosegel z "CONSTRAINT fk_Pridevnik_K FOREIGN KEY (ID) REFERENCES Osnova (ID_Pridevnik)", potem ti bo lahko kdo malo bolj pomagal.
BlueRunner ::
Narobe si bral diagram. Zunanji ključ, kot si ga poskusil vpisati, v shemi ne obstaja. Zunanji ključ, oziroma foreign key je tisti polje, ki se ga je v postopku normalizacije izločilo v novo relacijo. To pomeni, da je npr. polje ID_Pridevnik v relaciji Osnova zunanji ključ, ki se nahaja v tabeli Pridevnik.
Če želiš na silo to storiti za novo relacijo K_Pridevnik, potem moraš dodati v relacijo Osnova zunanji ključ ID_K_Pridevnik, ki se nahaja v relaciji K_Pridevnik: "ALTER TABLE Osnova ADD CONSTRAINT fk_k_pridevnik FOREIGN KEY (ID_K_Pridevnik) REFERENCES K_Pridevnik(ID);"
Seveda pa s tem verjetno narediš logično neumnost. Vsaj jaz si ne znam predstavljati kaj bi s tem v obstoječi shemi smiselnega dosegel.
Ker je iz tvojih vprašanj in poskusov rešitve razvidno, da te snovi še ne razumeš, predlagam, da si kje najdeš kakšno razlago o relacijah, da boš ugotovil za kaj točno se gre. Če je to šolska naloga, boš verjetno moral pregledati učno literaturo, ki vam jo je dal učitelj/predavatelj/asistent.
Če želiš na silo to storiti za novo relacijo K_Pridevnik, potem moraš dodati v relacijo Osnova zunanji ključ ID_K_Pridevnik, ki se nahaja v relaciji K_Pridevnik: "ALTER TABLE Osnova ADD CONSTRAINT fk_k_pridevnik FOREIGN KEY (ID_K_Pridevnik) REFERENCES K_Pridevnik(ID);"
Seveda pa s tem verjetno narediš logično neumnost. Vsaj jaz si ne znam predstavljati kaj bi s tem v obstoječi shemi smiselnega dosegel.
Ker je iz tvojih vprašanj in poskusov rešitve razvidno, da te snovi še ne razumeš, predlagam, da si kje najdeš kakšno razlago o relacijah, da boš ugotovil za kaj točno se gre. Če je to šolska naloga, boš verjetno moral pregledati učno literaturo, ki vam jo je dal učitelj/predavatelj/asistent.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL težava z vmesnimi tabelamiOddelek: Programiranje | 1834 (1439) | zavajon |
» | PostgreSQL pomočOddelek: Programiranje | 2505 (1998) | Mato989 |
» | SQL pomočOddelek: Programiranje | 2390 (1804) | miko22 |
» | SQL Parent key not foundOddelek: Programiranje | 1060 (983) | Ciklamen |
» | SQL težavaOddelek: Programiranje | 5169 (4451) | joseti |