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.