2014-05-09 10 views
10

Używam bazy danych Apache Derby z ij 10.10.deklarowanie klucza obcego w bazie danych apache derby

Mam 2 tabeli pierwszy jest "usertable", a drugi jest "logintable". W mojej "usertable" mam dwie kolumny userid i nazwę. Moja tablica 'logintable' ma dwie kolumny userid i hasło. Potrzebuję ustawić jedną kolumnę w logintable jako klucz obcy, gdzie klucz podstawowy jest w tabeli użytkownika.

użyłem polecenia następujące polecenie, aby utworzyć tabelę:

create table usertable (userid varchar(10) primary key,name varchar(20));

Jak mogę napisać logintable aby ustawić identyfikator użytkownika jako klucz obcy odnoszący się do powyższego klucza podstawowego.

Czy ktoś może mi pomóc.

Odpowiedz

12

myślę szukasz FOREIGN KEY składnię: http://db.apache.org/derby/docs/10.10/ref/rrefsqlj13590.html

, a dokładniej, składnia LITERATURA: http://db.apache.org/derby/docs/10.10/ref/rrefsqlj16357.html#rrefsqlj16357

Więc kiedy tworzysz „logintable”, w pewnym momencie oświadczenie Utwórz tabelę trzeba będzie coś takiego:

CONSTRAINT login_userid_ref FOREIGN KEY (userid) REFERENCES usertable(userid) 

Należy zauważyć, że język SQL ma różne style składni alternatywny dla deklarowania ograniczenia integralności referencyjnej jak te; Na przykład można użyć prostszej składni, która kończy się coś takiego:

create table logintable(
    userid varchar(10) references usertable(userid), 
    password varchar(20)); 
+2

użyłem następujące statment do tworzenia tabeli logowania z klucza obcego 'create table logintable (userid varchar (10) odniesienia usertable (userid) , password varchar (20)); ' To zadziałało. Dziękuję za podpowiedź. – rainu

+0

@rainu - Twoje tworzenie stołu zadziałało dla mnie i chciałbym odtworzyć twój komentarz jako odpowiedź –

+0

@rainu Edytowałem twoją sugerowaną składnię w odpowiedzi - dziękuję! –

Powiązane problemy