Saat Anda menambahkan FK, Anda menautkan kolom sebagai anak dari tabel yang Anda buat, ke induknya dari tabel induk. Oleh karena itu, Anda perlu memberikan nama kolom anak, serta nama kolom induk.
Sintaks umumnya adalah
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)
);
Perhatikan bahwa kolom di antara FOREIGN KEY
kurung, berasal dari tabel yang Anda buat, sedangkan kolom di antara REFERENCES PARENT_TABLE
berasal dari tabel induk.
Anda tidak memiliki kolom bernama CollectibleNum
diDiecastItems
. Anda . Oleh karena itu, berikut ini berfungsi dengan baik dengan menambahkan kolom seperti itu:
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)
);
FIDDLE