簡體   English   中英

(錯誤) ORA-02270: 此列列表沒有匹配的唯一鍵或主鍵

[英](Error) ORA-02270: no matching unique or primary key for this column-list

我有下面的代碼,我正在逐步運行它:

CREATE TABLE registration (
    constraint pkks primary key (cod_class, number_rgm),
    cod_class          NUMBER(8),
    number_rgm         NUMBER(8),
    dt_registration    DATE
);

CREATE TABLE class (
    constraint fk_class foreign key (cod_class) references registration (cod_class),
    cod_class      NUMBER(8),
    number_schoolyear   NUMBER(4),
    number_series       NUMBER(2),
    sg_class            VARCHAR2(2),
    cod_school          NUMBER(6),
    cod_grade           NUMBER(2),
    cod_period          NUMBER(2)
);

CREATE TABLE alumn (
    constraint fk_rgm foreign key (number_rgm) references registration (number_rgm),
    number_rgm         NUMBER(8),
    name_alumn         VARCHAR2(40),
    name_father        VARCHAR2(40),
    name_mother        VARCHAR2(40),
    birth              DATE,
    id_sex             CHAR(1)
);

但是當我創建第二個和第三個表時,我收到以下錯誤:

ORA-02270: no matching unique or primary key for this column-list

如何解決此錯誤並在此邏輯中創建表? 我將所有primary keys保存在registration中,其他表只會引用它。

你有你的外鍵倒退。 registration中的cod_classnumber_rgm列應該是分別引用classalumn表的外鍵。

CREATE TABLE class (
    constraint pk_class primary key (cod_class),
    cod_class      NUMBER(8),
    number_schoolyear   NUMBER(4),
    number_series       NUMBER(2),
    sg_class            VARCHAR2(2),
    cod_school          NUMBER(6),
    cod_grade           NUMBER(2),
    cod_period          NUMBER(2)
);

CREATE TABLE alumn (
    constraint pk_rgm primary key (number_rgm),
    number_rgm         NUMBER(8),
    name_alumn         VARCHAR2(40),
    name_father        VARCHAR2(40),
    name_mother        VARCHAR2(40),
    birth              DATE,
    id_sex             CHAR(1)
);

CREATE TABLE registration (
    constraint pkks primary key (cod_class, number_rgm),
    constraint fk_class foreign key (cod_class) references class(cod_class),
    constraint fk_rgm foreign key (number_rgm) references alum(number_rgm),
    cod_class          NUMBER(8),
    number_rgm         NUMBER(8),
    dt_registration    DATE
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM