2017-09-29 46 views
0

私は最初の宿題に取り組んでおり、問題なく正しく動作するようにしています。テーブルの映画やスターの仕事完全に罰金が、私は、テーブルの役割を作成しようとすると、それは私に、このエラー与える:ORA-02270:「スター:この列リストsql:ORA-02270:この列リストに一致する一意キーまたは主キーがありません

create table movie(id integer, 
       title varchar(50), 
       rating varchar(10), 
       genre varchar(15), 
       budget integer, 
       unique(id,title), 
       constraint moviekey primary key(id)); 

create table star(id integer, 
       name varchar(30), 
       birth_year integer, 
       gender varchar(10), 
       salary integer, 
       primary key(id,name), 
       constraint fk_mov_star foreign key (id) references movie(id) on delete cascade); 

create table role(m_id integer, 
       s_id integer, 
       character_name varchar(40), 
       primary key(m_id,s_id,character_name), 
       constraint fk_mid_rol foreign key (m_id) references movie(id) on delete cascade, 
       constraint fk_sid_rol foreign key (s_id) references star(id)); 

答えて

1

理由に該当一意キーまたは主キーを(id)」はテーブルスターの外部キーであり、実際には「ムービー(id)」を指しています。

解: set star(id)を主キーとして設定します。スターから外来キーを取り除く。

create table movie(id integer, 
       title varchar(50), 
       rating varchar(10), 
       genre varchar(15), 
       budget integer, 
       unique(id,title), 
       constraint moviekey primary key(id)); 

create table star(id integer, 
       name varchar(30), 
       birth_year integer, 
       gender varchar(10), 
       salary integer, 
       primary key(id)); 

create table role(m_id integer, 
       s_id integer, 
       character_name varchar(40), 
       primary key(m_id,s_id,character_name), 
       constraint fk_mid_rol foreign key (m_id) references movie(id) on delete cascade, 
       constraint fk_sid_rol foreign key (s_id) references star(id)); 
関連する問題