Myslím, že chcete následující. Upozorňujeme, že byste pravděpodobně měli používat VARCHAR2
spíše než VARCHAR
v Oracle. V tuto chvíli fungují stejně, ale existuje možnost, že Oracle změní funkcionalitu pro VARCHAR
aby byl v souladu se standardem ANSI (ve kterém prázdné řetězce ''
se liší od NULL
s ... ale to jsem odbočil):
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 );
A pak:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
Je trochu zvláštní, že se sloupec jmenuje surname
v CLIENT
a b_surname
v BOSS
.
Pokud chcete b_surname
v BOSS
odkazovat na surname
v CLIENT
-- pak musíte vytvořit CLIENT.surname
primární klíč, nebo alespoň jedinečný.