Définir le nom de la colonne de clé primaire lors de l'utilisation de plusieurs clés étrangères
P粉099145710
P粉099145710 2023-09-11 15:27:20
0
1
460

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 :)

P粉099145710
P粉099145710

répondre à tous(1)
P粉015402013

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 :

CONSTRAINT FOREIGN KEY (class_id,course_id,student_id)
    REFERENCES teach_enroll(class_id,course_id,student_id)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!