Heim > Fragen und Antworten > Hauptteil
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粉0154020132023-09-12 00:18:45
您的主键由三 (3) 列组成,而不是单个列,因为这是您定义它的方式。这意味着这三列的组合对于表中的每一行都必须是唯一的,尽管定义为键的任何给定列可能不是唯一的。您不能将单个名称应用于三列。
这意味着您的外键约束将命名所有 3 列。假设两个表中的列名相同,则:
CONSTRAINT FOREIGN KEY (class_id,course_id,student_id) REFERENCES teach_enroll(class_id,course_id,student_id)