Ich versuche, eine objektbezogene relationale Datenbank eines Schulmeldesystems in Oracle 11g zu machen, mein SQL-Code ist unten. Ich versuche, eine Abfrage zu schreiben, die den Kursnamen und die in diesem Kurs eingeschriebenen Studenten zurückgibt. aber wenn ich versuche, einen weiteren Chemieunterricht mit der ID 101 hinzuzufügen, bekomme ich einen Fehler. Das liegt daran, dass ich KursID zu einem Primärschlüssel gemacht habe, also kann ich nicht mehrere Kurse mit dieser Kurs-ID einfügen? Kann mir also jemand zeigen, wie ich mehrere Chemie-Insert-Anweisungen mit derselben ID, aber einer anderen Studenten-ID erstellen kann?Objekt relationale Datenbank Primärschlüssel
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;