Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Klucz obcy Oracle

Myślę, że chcesz następujące. Pamiętaj, że prawdopodobnie powinieneś używać VARCHAR2 zamiast VARCHAR w Oracle. Obecnie działają tak samo, ale istnieje możliwość, że Oracle zmieni funkcjonalność dla VARCHAR aby dostosować go do standardu ANSI (w którym puste ciągi '' są odróżniane od NULL s ... ale dygresja):

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 potem:

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

To trochę dziwne, że kolumna nosi nazwę surname w CLIENT i b_surname w BOSS .

Jeśli chcesz b_surname w BOSS odnosić się do surname w CLIENT -- następnie musisz zrobić CLIENT.surname klucz podstawowy, a przynajmniej unikalny.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć dwie tabele w posiadanie tych samych kolumn?

  2. ORA-00907:brak prawego nawiasu (z przykładami)

  3. Istnieje / nie istnieje:„wybierz 1” a „wybierz pole”

  4. Globalny indeks niepartycjonowany w Oracle

  5. Jak wywołać funkcję Oracle z Hibernate z parametrem zwracanym?