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.