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;
J'ai essayé de nommer ma colonne de clé primaire comme ENROLL_ID mais lorsque j'interroge select * fromteacher_enroll le mot-clé de contrainte n'aide pas, j'obtiens uniquement coach_id, class_id, course_id, student_id dans des colonnes séparées mais je ne peux pas voir la colonne de clé primaire :)
Votre clé primaire se compose de trois (3) colonnes, et non d'une seule colonne, car c'est ainsi que vous l'avez définie. Cela signifie que la combinaison de ces trois colonnes doit être unique pour chaque ligne du tableau, bien qu'une colonne donnée définie comme clé puisse ne pas être unique. Vous ne pouvez pas appliquer un seul nom à trois colonnes.
Cela signifie que votre contrainte de clé étrangère nommera les 3 colonnes. En supposant que les noms de colonnes dans les deux tableaux sont identiques, alors :