Heim  >  Fragen und Antworten  >  Hauptteil

Legen Sie den Namen der Primärschlüsselspalte fest, wenn Sie mehrere Fremdschlüssel verwenden

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粉099145710P粉099145710404 Tage vor435

Antworte allen(1)Ich werde antworten

  • P粉015402013

    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)
    

    Antwort
    0
  • StornierenAntwort