can someone help me with a SQL Error: ORA-02270?

can someone help me with a SQL Error: ORA-02270?

谁能帮我解决这个错误。也许你有更敏锐的眼睛。我检查了很多次代码,但仍然找不到。我想要做的是为 UŽSAKYTOS_DALYS table.

创建 KODAS_UŽ 外键
CREATE TABLE UŽSAKYMAI
    (KODAS_UŽ NUMERIC(10,0) NOT NULL,
     ID_USS NUMERIC(10,0) NOT NULL,
     DATA_UŽ DATE NOT NULL);
ALTER TABLE UŽSAKYMAI ADD CONSTRAINT UŽSAKYMAI_PK PRIMARY KEY (KODAS_UŽ,ID_USS);

CREATE TABLE UŽSAKYTOS_DALYS 
    (NR NUMERIC(3,0) NOT NULL,
     KODAS_DLS VARCHAR(20) NOT NULL,
     KODAS_UKS NUMERIC(10,0) NOT NULL,
     ID_USS NUMERIC(10,0) NOT NULL);
ALTER TABLE UŽSAKYTOS_DALYS ADD CONSTRAINT UŽ_PK PRIMARY KEY (NR, KODAS_DLS, KODAS_UKS);

ALTER TABLE UŽSAKYTOS_DALYS ADD CONSTRAINT UŽSAKYTOS_DALYS_DALYS_FK FOREIGN KEY (KODAS_DLS)
REFERENCES DALYS(KODAS_D) ON DELETE CASCADE;

从这里开始不起作用

ALTER TABLE UŽSAKYTOS_DALYS ADD CONSTRAINT UŽSAKYTOS_DALYS_UŽSAKYMAI_FK FOREIGN KEY (KODAS_UKS)
REFERENCES UŽSAKYMAI(KODAS_UŽ) ON DELETE CASCADE;

错误代码:

SQL Error: ORA-02270: no matching unique or primary key for this column-list 02270. 00000 - "no matching unique or primary key for this column-list" 
*Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement gives a column-list for which there is no matching unique or primary key constraint in the referenced table.
*Action: Find the correct column names using the ALL_CONS_COLUMNS catalog view 

尝试:

ALTER TABLE UŽSAKYTOS_DALYS ADD CONSTRAINT UŽSAKYTOS_DALYS_UŽSAKYMAI_FK FOREIGN KEY (KODAS_UKS, ID_USS)
    REFERENCES UŽSAKYMAI(KODAS_UŽ, ID_USS) ON DELETE CASCADE;

这是我最好的猜测,我不太熟悉 Oracle,或者一般的外键。我只是偶尔做(阅读:基本上从不)。

你的问题是引用的 table 的主键有 两个 列,但你正试图为其创建一个仅包含 一个列。

这是 table def:

CREATE TABLE UŽSAKYMAI
    (KODAS_UŽ NUMERIC(10,0) NOT NULL,
     ID_USS NUMERIC(10,0) NOT NULL,
     DATA_UŽ DATE NOT NULL);
ALTER TABLE UŽSAKYMAI ADD CONSTRAINT UŽSAKYMAI_PK
  PRIMARY KEY (KODAS_UŽ,ID_USS);

这是您引用它的尝试:

ALTER TABLE UŽSAKYTOS_DALYS ADD CONSTRAINT UŽSAKYTOS_DALYS_UŽSAKYMAI_FK
  FOREIGN KEY (KODAS_UKS) REFERENCES UŽSAKYMAI(KODAS_UŽ)
  ON DELETE CASCADE;

尝试将 ID_USS 列添加到您的外键 def:

ALTER TABLE UŽSAKYTOS_DALYS ADD CONSTRAINT UŽSAKYTOS_DALYS_UŽSAKYMAI_FK
  FOREIGN KEY (KODAS_UKS, ID_USS) REFERENCES UŽSAKYMAI(KODAS_UŽ, ID_USS)
  ON DELETE CASCADE;

或者简单地说,因为您引用的是主键,所以您可以省略引用的列:

ALTER TABLE UŽSAKYTOS_DALYS ADD CONSTRAINT UŽSAKYTOS_DALYS_UŽSAKYMAI_FK
  FOREIGN KEY (KODAS_UKS, ID_USS) REFERENCES UŽSAKYMAI
  ON DELETE CASCADE;