sql >> Databáze >  >> RDS >> Oracle

Cizí klíč Oracle

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ý.




  1. C# Mysql kódování UTF8

  2. Příklad použití bind_result vs get_result

  3. Nemáte implicitní aplikaci v rozsahu:PlayFramework s Oracle

  4. Hledání chybějících dat v sekvenci