Saya pikir Anda menginginkan yang berikut ini. Harap dicatat bahwa Anda mungkin harus menggunakan VARCHAR2 daripada VARCHAR di Oracle. Mereka bekerja sama saat ini tetapi ada kemungkinan Oracle akan mengubah fungsionalitas untuk VARCHAR untuk membawanya sejalan dengan standar ANSI (di mana string kosong '' dibedakan dari NULL s ... tapi saya ngelantur):
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 );
Dan kemudian:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
Agak aneh kolomnya diberi nama surname di CLIENT dan b_surname di BOSS .
Jika Anda ingin b_surname di BOSS untuk merujuk ke surname di CLIENT -- maka Anda perlu membuat CLIENT.surname kunci utama, atau setidaknya unik.