Legen Sie den Namen der Primärschlüsselspalte fest, wenn Sie mehrere Fremdschlüssel verwenden
P粉099145710
P粉099145710 2023-09-11 15:27:20
0
1
472

create table teach_enroll(

instructor_id varchar(64) not null,
class_id varchar(64)not null,
course_id varchar(64)not null,
student_id varchar(64) not null,
foreign key (instructor_id) references instructor(id),
foreign key (class_id) references class(id),
foreign key(course_id)references course_type(id),
foreign key (student_id)references student(id),

CONSTRAINT ENROLL_ID primary key (class_id,course_id,student_id) 

);

select * from teach_enroll;

Ich habe versucht, meine Primärschlüsselspalte als ENROLL_ID zu benennen, aber wenn ich select * fromteacher_enroll abfrage, hilft das Einschränkungsschlüsselwort nicht. Ich erhalte nur coach_id, class_id, course_id, student_id in separaten Spalten, aber ich kann die Primärschlüsselspalte nicht sehen :)

P粉099145710
P粉099145710

Antworte allen(1)
P粉015402013

您的主键由三 (3) 列组成,而不是单个列,因为这是您定义它的方式。这意味着这三列的组合对于表中的每一行都必须是唯一的,尽管定义为键的任何给定列可能不是唯一的。您不能将单个名称应用于三列。

这意味着您的外键约束将命名所有 3 列。假设两个表中的列名相同,则:

CONSTRAINT FOREIGN KEY (class_id,course_id,student_id)
    REFERENCES teach_enroll(class_id,course_id,student_id)
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage