sql >> Databasteknik >  >> RDS >> Mysql

Felkod:1822 när datatyperna matchar, med sammansatt nyckel

Problemet beror på det faktum att den främmande nyckeln, subj_code , är en del av en flerkolumn primärnyckel (PK) i den refererade tabellen enrolment :

primary key (stud_id, subj_code, semester, year)

där denna kolumn (subj_code ) är inte den längst till vänster .

Tabell student har inte det här problemet eftersom dess kolumn för främmande nyckel stud_id är kolumnen längst till vänster i PK i den refererade tabellen.

För att lösa detta kan du skapa ett nytt index för den refererade kolumnen:

ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);

Obs! Du måste göra samma sak för den refererade tabellen grade i den andra främmande nyckeln.

Demo här



  1. Enhetstestning för PL/SQL

  2. MySQL - Base64 vs BLOB

  3. Oracle SQL escape-tecken (för ett '&')

  4. Infoga standard i kolumnen inte null om värdet är null