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

Problem tworzenia klucza obcego w Oracle

Kiedy dodajesz FK, łączysz kolumnę jako dziecko z tabeli, którą tworzysz, do jej nadrzędnej z tabeli nadrzędnej. Dlatego musisz podać nazwę kolumny podrzędnej, a także nazwę kolumny nadrzędnej.

Ogólna składnia to

CREATE TABLE table_name
(
  column1 datatype null/not null,
  column2 datatype null/not null,
  ...

  CONSTRAINT fk_column
    FOREIGN KEY (column1, column2, ... column_n)
    REFERENCES parent_table (column1, column2, ... column_n)
);

Zwróć uwagę, że kolumny między FOREIGN KEY nawiasy, pochodzą z tabeli, którą tworzysz, natomiast kolumny pomiędzy REFERENCES PARENT_TABLE pochodzą z tabeli nadrzędnej.

Nie masz kolumny o nazwie CollectibleNum w swoichDiecastItems . Dlatego po dodaniu takiej kolumny działa poprawnie:

CREATE TABLE collectibles 
  ( 
     collectiblenum NUMBER(10) NOT NULL, 
     CONSTRAINT collectibles_pk PRIMARY KEY(collectiblenum) 
  ); 

CREATE TABLE diecastitems 
  ( 
     diecastname    VARCHAR2(45) NOT NULL, 
     diecastcopy    NUMBER(2) NOT NULL, 
     diecastscale   VARCHAR2(25), 
     colorscheme    VARCHAR2(25), 
     diecastyear    NUMBER(4), 
     collectiblenum NUMBER(10),   --added column
     CONSTRAINT diecastitem_pk PRIMARY KEY(diecastname, diecastcopy), 
     CONSTRAINT diecastitem_collectible_fk FOREIGN KEY(collectiblenum) 
     REFERENCES collectibles(collectiblenum) 
  ); 

SKRZYPKA




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obsługa ExecuteScalar(), gdy nie są zwracane żadne wyniki

  2. Wybierz liczbę (*) z wielu tabel

  3. Obrót w Oracle 11g

  4. Jak usunąć wszystkie tabele użytkowników?

  5. Co to jest operator konkatenacji ciągów w Oracle?