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;
谁能帮我解决这个错误。也许你有更敏锐的眼睛。我检查了很多次代码,但仍然找不到。我想要做的是为 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;