Я пытаюсь создать объектно-реляционную базу данных системы зачисления в школу в oracle 11g, мой код sql ниже. Я пытаюсь написать запрос, который возвращает название курса и студентов, зачисленных на этот курс. но когда я пытаюсь добавить еще один урок химии с идентификатором 101, я получаю сообщение об ошибке. это потому, что я сделал идентификатор курса первичным ключом, поэтому я не могу вставить несколько курсов с этим идентификатором курса? Итак, может ли кто-нибудь показать мне, как я могу создать несколько вставок по химии с одним и тем же идентификатором, но с другим идентификатором студента?
CREATE TYPE Student_objtyp AS OBJECT (
FName VARCHAR2(20),
LName VARCHAR2(20),
StudentID NUMBER
);
/
CREATE TABLE Student_objtab OF Student_objtyp (StudentID PRIMARY KEY)
OBJECT IDENTIFIER IS PRIMARY KEY;
CREATE TYPE Course_objtyp AS OBJECT (
CourseName VARCHAR(20),
CourseID NUMBER,
StudentID REF Student_objtyp
);
/
CREATE TABLE Course_objtab OF Course_objtyp (
PRIMARY KEY (CourseID),
FOREIGN KEY (StudentID) REFERENCES Student_objtab)
OBJECT IDENTIFIER IS PRIMARY KEY;
INSERT INTO Student_objtab VALUES('bill','smitts',1);
INSERT INTO Student_objtab VALUES('bob','jo',2);
INSERT INTO Course_objtab
SELECT 'Chemistry',101,
REF(S)
FROM Student_objtab S
WHERE S.StudentID = 1;
INSERT INTO Course_objtab
SELECT 'Chemistry',101,
REF(S)
FROM Student_objtab S
WHERE S.StudentID = 2;
INSERT INTO Course_objtab
SELECT 'Physics',201,
REF(S)
FROM Student_objtab S
WHERE S.StudentID = 1;
select c.CourseName, c.StudentID
from Course_objtab c;