私は、このデータベースからPLSQLで作成しようとしているクエリを書いているプロジェクトに取り組んでいます。しかし、私はそれを行う前に、私はdbを作成する必要があり、私が実行しようとしているテーブル作成statemensのいくつかはエラーを返すです。特に、エラーは、私が参照している主キーのいくつかが存在しないことを示しているようです。それが真実かどうかを確認するとき、私はその可能性のある問題を見ます。例えば、私はCourse_Interest_groupの主キー(interest_gid)への外部キーを設定「SQLエラー:ORA-02270:この列リストに一致する固有キーまたは主キーがありません」というエラーを修正するにはどうしたらいいですか?
create table group_disforum (df_id int,
ig_id int,
constraint gdf_FK foreign key(ig_id) references Course_Interest_group(interest_gid),
constraint gdf_PK primary key(df_id, ig_id),
comments varchar(150)
)
をしよう。
がcreate table Course_Interest_group(interest_gid int,
gname varchar(20),
courseid int,
facultyid int,
past_gpa float,
constraint IG_PK primary key(interest_gid, courseid, facultyid),
constraint IG_FK1 foreign key(courseid) references course(courseid),
constraint IG_FK2 foreign key(facultyid) references User_Faculty(userid)
);
Course_Interest_groupの主キーだけでinterest_gidではなく、interest_gid、courseid、およびfacultyid:
しかし、Course_Interest_groupはこれです。
同じ問題のいくつかの他のインスタンスがあります。
私の質問は、Course_Interest_groupを参照するとき、私はどのようにinterest_gidを参照することができますか?出来ますか?私は何かを変えるべきですか?
(interest_gid、courseid、facultyid)の現在のCourse_Interest_group pkをそのまま維持したいと思いますが、必要に応じて修正します。
3つの列を一意に宣言する必要があり、1つの数値列である合成主キーが必要です。 –
私は合成主キーが何であるか完全には分かっていません。あなたの答えを詳しく説明できますか、おそらく例を提供したりリンクしたりできますか? – Codarus
ID列を追加して(通常はシーケンスを使用して)、各行に一意の整数を割り当てます。 –