Myślę, że chcesz następujące. Pamiętaj, że prawdopodobnie powinieneś używać VARCHAR2 zamiast VARCHAR w Oracle. Obecnie działają tak samo, ale istnieje możliwość, że Oracle zmieni funkcjonalność dla VARCHAR aby dostosować go do standardu ANSI (w którym puste ciągi '' są odróżniane od NULL s ... ale dygresja):
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 );
A potem:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
To trochę dziwne, że kolumna nosi nazwę surname w CLIENT i b_surname w BOSS .
Jeśli chcesz b_surname w BOSS odnosić się do surname w CLIENT -- następnie musisz zrobić CLIENT.surname klucz podstawowy, a przynajmniej unikalny.