Jag tror att du vill ha följande. Observera att du förmodligen bör använda VARCHAR2
istället för VARCHAR
i Oracle. De fungerar likadant för tillfället men det finns en möjlighet att Oracle kommer att ändra funktionaliteten för VARCHAR
för att få den i linje med ANSI-standarden (där tomma strängar ''
särskiljs från NULL
s ... men jag avviker):
CREATE TABLE client
( id NUMBER(10) NOT NULL PRIMARY KEY
, name VARCHAR2(30) NOT NULL
, surname VARCHAR2(30) NOT NULL
, phone NUMBER(11) NOT NULL
, email VARCHAR2(70) );
CREATE TABLE boss
( b_surname VARCHAR2(30) NOT NULL PRIMARY KEY
, b_Name VARCHAR2(30) NOT NULL );
Och sedan:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
Det är lite konstigt att kolumnen heter surname
i CLIENT
och b_surname
i BOSS
.
Om du vill ha b_surname
i BOSS
för att hänvisa till surname
i CLIENT
-- då måste du göra CLIENT.surname
en primärnyckel, eller åtminstone unik.