FKを追加すると、子として列をリンクすることになります。 作成しているテーブルからその親まで 親テーブルから。したがって、親列名だけでなく、子列名も指定する必要があります。
一般的な構文は
です。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)
);
FOREIGN KEY
の間の列に注意してください 角かっこは、作成しているテーブルからのものであり、列はREFERENCES PARENT_TABLE
親テーブルからのものです。
CollectibleNum
という列がありません DiecastItems
で 。したがって、このような列を追加すると、以下が正常に機能します。
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)
);
フィドル