Jeg tror, du vil have følgende. Bemærk venligst, at du sandsynligvis skal bruge VARCHAR2
i stedet for VARCHAR
i Oracle. De fungerer på samme måde i øjeblikket, men der er en mulighed for, at Oracle vil ændre funktionaliteten for VARCHAR
for at bringe det i overensstemmelse med ANSI-standarden (hvor tomme strenge ''
skelnes fra NULL
s ... men jeg afviger):
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 );
Og så:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
Det er lidt mærkeligt, at kolonnen hedder surname
i CLIENT
og b_surname
i BOSS
.
Hvis du vil have b_surname
i BOSS
at henvise til surname
i CLIENT
-- så skal du lave CLIENT.surname
en primær nøgle, eller i det mindste unik.