Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

chave estrangeira Oracle


Acho que você quer o seguinte. Observe que você provavelmente deve estar usando VARCHAR2 em vez de VARCHAR em Oráculo. Eles funcionam da mesma forma no momento, mas existe a possibilidade de que o Oracle altere a funcionalidade para VARCHAR para alinhá-lo com o padrão ANSI (no qual strings vazias '' são distinguidos de NULL s ... mas eu discordo):
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 );

E depois:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);

É um pouco estranho que a coluna tenha o nome surname em CLIENT e b_surname em BOSS .

Se você quiser b_surname em BOSS para se referir a surname em CLIENT -- então você precisa fazer CLIENT.surname uma chave primária, ou pelo menos única.