sql >> Databasteknik >  >> RDS >> Oracle

Problem med att skapa främmande nyckel i Oracle

När du lägger till FK länkar du en kolumn som barn från tabellen du skapar till dess förälder från föräldratabellen. Därför måste du ange namnet på den underordnade kolumnen, såväl som det överordnade kolumnnamnet.

Den allmänna syntaxen är

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)
);

Lägg märke till att kolumnerna mellan FOREIGN KEY parentes, är från tabellen du skapar, medan kolumnerna mellan REFERENCES PARENT_TABLE är från föräldratabellen.

Du har inte en kolumn som heter CollectibleNum i din DiecastItems . Följande fungerar därför bra genom att lägga till en sådan kolumn:

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) 
  ); 

FIDEL




  1. Inaktivera och senare aktivera alla tabellindex i Oracle

  2. Steg för steg postgres_fdw

  3. Hitta närmaste datum i SQL Server

  4. Hybrid OLTP/Analytics Databas Workloads:Replikera MySQL-data till ClickHouse