Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehlercode:1822, wenn Datentypen übereinstimmen, mit zusammengesetztem Schlüssel

Das Problem liegt daran, dass der Fremdschlüssel subj_code , ist Teil einer mehrspaltigen Primärschlüssel (PK) in der referenzierten Tabelle enrolment :

primary key (stud_id, subj_code, semester, year)

wobei diese Spalte (subj_code ) ist nicht ganz links .

Tabelle student hat dieses Problem nicht, weil seine Fremdschlüsselspalte stud_id ist die ganz linke Spalte des PK in der referenzierten Tabelle.

Um dies zu beheben, können Sie einen neuen Index für die referenzierte Spalte erstellen:

ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);

Hinweis: Dasselbe müssen Sie für die referenzierte Tabelle grade tun im anderen Fremdschlüssel.

Demo hier