我目前正在学习 PL/SQL,有一些任务需要解决,但不知道如何去做。 我有以下表格:
create table Student (
id_stud number (10) not null,name varchar2 (30),PRIMARY KEY (id_stud)
);
create table lecture (
id_l number (10) not null,titel varchar2 (40),PRIMARY KEY (id_l)
);
create table seminar (
id_seminar number (10) not null,description varchar2 (30),id_l number (10) not null,PRIMARY KEY (id_seminar),FOREIGN KEY (id_l) REFERENCES lecture (id_l)
);
create Table participate_student_lecture(
id_stud number (10) not null,PRIMARY KEY (id_stud,id_l ),FOREIGN KEY (id_stud ) REFERENCES Student(id_stud ),FOREIGN KEY (id_l ) REFERENCES lecture(id_l )
);
create table participate_student_seminar (
id_stud number (10) not null,id_seminar number (10) not null,id_seminar ),FOREIGN KEY (id_seminar ) REFERENCES seminar(id_seminar )
);
以及以下任务:
-
一个程序应该删除讲座和相关的研讨会。只有在讲座或研讨会中没有学生注册的情况下才有可能。如果讲座无法删除,则应抛出一条消息。
-
程序应该删除研讨会,但前提是该研讨会没有注册学生。
-
当学生注册研讨会时,学生也应自动注册相应的讲座。 -> 用触发器解决
-
如果一个讲座有多个研讨会(一个讲座可以有 1-3 个研讨会),它们应该相等。这意味着学生应该轮流分配到研讨会。 (学生 1 研讨会 1,学生 2 研讨会 2,学生 3 研讨会 3,学生 4 研讨会 1) -> 用触发器解决
您是否有一些解决方案或至少一些提示?
非常感谢!!!