Creo que quieres lo siguiente. Tenga en cuenta que probablemente debería estar usando VARCHAR2
en lugar de VARCHAR
en Oráculo. Funcionan igual en este momento, pero existe la posibilidad de que Oracle cambie la funcionalidad de VARCHAR
para alinearlo con el estándar ANSI (en el que las cadenas vacías ''
se distinguen de NULL
s ... pero estoy divagando):
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 );
Y luego:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
Es un poco extraño que la columna se llame surname
en CLIENT
y b_surname
en BOSS
.
Si quieres b_surname
en BOSS
para referirse a surname
en CLIENT
-- entonces necesitas hacer CLIENT.surname
una clave primaria, o al menos única.