Ik denk dat je het volgende wilt. Houd er rekening mee dat u waarschijnlijk VARCHAR2
. zou moeten gebruiken in plaats van VARCHAR
bij Orakel. Ze werken op dit moment hetzelfde, maar er is een mogelijkheid dat Oracle de functionaliteit voor VARCHAR
zal wijzigen om het in overeenstemming te brengen met de ANSI-standaard (waarin lege strings ''
worden onderscheiden van NULL
s ... maar ik dwaal af):
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 );
En dan:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
Het is een beetje vreemd dat de kolom surname
heet in CLIENT
en b_surname
in BOSS
.
Als je b_surname
. wilt in BOSS
om te verwijzen naar surname
in CLIENT
-- dan moet je CLIENT.surname
. maken een primaire sleutel, of op zijn minst uniek.