sql >> Database teknologi >  >> RDS >> Oracle

Oracle fremmed nøgle

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.




  1. Oracle Forms i R12/R12.2

  2. Kan jeg kæde databaselinks i Oracle?

  3. Er der en optimal metode til at bestille et MySQL sammensat indeks?

  4. Forskellen mellem Stream Replication og logisk replikering