Khi bạn thêm FK, bạn đang liên kết một cột ở dạng con từ bảng bạn đang tạo đến cha của nó từ bảng cha. Do đó, bạn cần cung cấp tên cột con cũng như tên cột mẹ.
Cú pháp chung là
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ưu ý rằng các cột giữa FOREIGN KEY
dấu ngoặc, là từ bảng bạn đang tạo, trong khi các cột đặt cược làN REFERENCES PARENT_TABLE
là từ bảng mẹ.
Bạn không có cột được gọi là CollectibleNum
trong DiecastItems
của bạn . Do đó, cách sau hoạt động tốt bằng cách thêm một cột như vậy:
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