sql >> Database >  >> RDS >> Mysql

Foutcode:1822 wanneer gegevenstypen overeenkomen, met samengestelde sleutel

Het probleem is te wijten aan het feit dat de externe sleutel, subj_code , maakt deel uit van een meerdere kolommen primaire sleutel (PK) in de tabel waarnaar wordt verwezen enrolment :

primary key (stud_id, subj_code, semester, year)

waar deze kolom (subj_code ) is niet de meest linkse .

Tabel student heeft dit probleem niet omdat de externe sleutelkolom stud_id is de meest linkse kolom van de PK in de tabel waarnaar wordt verwezen.

Om dit op te lossen, kunt u een nieuwe index maken voor de kolom waarnaar wordt verwezen:

ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);

Opmerking: U moet hetzelfde doen voor de tabel waarnaar wordt verwezen grade in de andere externe sleutel.

Demo hier



  1. Wat betekenen de volgende termen voor MySQL csv-importquery's?

  2. Doctrine 2 mysql FIELD-functie in volgorde door

  3. Toegang krijgen tot een bestands-DSN vanuit Java

  4. Hoe SHOW COLLATION werkt in MariaDB