Habe folgende Tabellen:
TRUNCATE TABLE title;
DROP TABLE title;
CREATE TABLE title
(title_id NUMBER(10)
CONSTRAINT title_id_pk PRIMARY KEY,
title VARCHAR2(60) NOT NULL,
description VARCHAR2(400) NOT NULL,
rating VARCHAR2(4)
CONSTRAINT rating_ch CHECK(ratingIN('G','PG','R','NC17','NR')),
category VARCHAR2(20)
CONSTRAINT category_ch CHECK(category IN('DRAMA' ,'COMEDY' ,'ACTION' ,'CHILD','DOCUMENTARY')),
release_date DATE);
TRUNCATE TABLE title_copy;
DROP TABLE title_copy;
CREATE TABLE title_copy
( copy_id NUMBER(10),
title_id NUMBER(10),
status VARCHAR2(15) NOT NULL
CONSTRAINT status_ch CHECK(status IN ('AVAILABLE','DESTROYED','RENTED','RESERVED')),
CONSTRAINT copy_id_pk PRIMARY KEY(copy_id),
CONSTRAINT title_copy_title_id_fk FOREIGN KEY (title_id)
REFERENCES title (title_id));
TRUNCATE TABLE rental;
DROP TABLE rental;
CREATE TABLE rental
( book_date DATE DEFAULT SYSDATE
CONSTRAINT book_date_pk PRIMARY KEY,
member_id NUMBER(10),
copy_id NUMBER(10),
act_ret_date DATE,
exp_ret_date DATE DEFAULT (SYSDATE + 2),
title_id NUMBER(10),
CONSTRAINT member_member_id_fk FOREIGN KEY(member_id)
REFERENCES member(member_id),
CONSTRAINT title_copy_copy_id_fk FOREIGN KEY(copy_id)
REFERENCES title_copy(copy_id),
CONSTRAINT title_copy_title_id_fk FOREIGN KEY(title_id)
REFERENCES title_copy(title_id));
Das Problem ist bei den markierten bereichen. Wenn ich nämlich die letzte Tabelle anlege kommt folgende Fehlermeldung:ORA-02270: no matching unique or primary key for this column-list
Das ist mir klar, da ja der title_id nur in der obersten tabelle primary gesetzt ist. Aber wie kann ich das problem dann umgehen?
mfg
donar
TRUNCATE TABLE title;
DROP TABLE title;
CREATE TABLE title
(title_id NUMBER(10)
CONSTRAINT title_id_pk PRIMARY KEY,
title VARCHAR2(60) NOT NULL,
description VARCHAR2(400) NOT NULL,
rating VARCHAR2(4)
CONSTRAINT rating_ch CHECK(ratingIN('G','PG','R','NC17','NR')),
category VARCHAR2(20)
CONSTRAINT category_ch CHECK(category IN('DRAMA' ,'COMEDY' ,'ACTION' ,'CHILD','DOCUMENTARY')),
release_date DATE);
TRUNCATE TABLE title_copy;
DROP TABLE title_copy;
CREATE TABLE title_copy
( copy_id NUMBER(10),
title_id NUMBER(10),
status VARCHAR2(15) NOT NULL
CONSTRAINT status_ch CHECK(status IN ('AVAILABLE','DESTROYED','RENTED','RESERVED')),
CONSTRAINT copy_id_pk PRIMARY KEY(copy_id),
CONSTRAINT title_copy_title_id_fk FOREIGN KEY (title_id)
REFERENCES title (title_id));
TRUNCATE TABLE rental;
DROP TABLE rental;
CREATE TABLE rental
( book_date DATE DEFAULT SYSDATE
CONSTRAINT book_date_pk PRIMARY KEY,
member_id NUMBER(10),
copy_id NUMBER(10),
act_ret_date DATE,
exp_ret_date DATE DEFAULT (SYSDATE + 2),
title_id NUMBER(10),
CONSTRAINT member_member_id_fk FOREIGN KEY(member_id)
REFERENCES member(member_id),
CONSTRAINT title_copy_copy_id_fk FOREIGN KEY(copy_id)
REFERENCES title_copy(copy_id),
CONSTRAINT title_copy_title_id_fk FOREIGN KEY(title_id)
REFERENCES title_copy(title_id));
Das Problem ist bei den markierten bereichen. Wenn ich nämlich die letzte Tabelle anlege kommt folgende Fehlermeldung:ORA-02270: no matching unique or primary key for this column-list
Das ist mir klar, da ja der title_id nur in der obersten tabelle primary gesetzt ist. Aber wie kann ich das problem dann umgehen?
mfg
donar
Zuletzt bearbeitet: