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.