sql >> Database >  >> RDS >> Mysql

Foutcode:1215. Kan geen beperking voor externe sleutels toevoegen (buitenlandse sleutels)

Het meest waarschijnlijke probleem is deze regel:

FOREIGN KEY (classLeader) REFERENCES student(studentID),

Het datatype van classLeader is VARCHAR(255). Dat moet overeenkomen met het datatype van de kolom waarnaar wordt verwezen... student.studentID . En natuurlijk de student tabel moet bestaan, en de studentID kolom moet bestaan, en de studentID kolom zou de PRIMAIRE SLEUTEL van de studententabel moeten zijn (hoewel ik geloof dat MySQL toestaat dat dit een UNIEKE SLEUTEL is in plaats van een PRIMAIRE SLEUTEL, of zelfs maar een index erop heeft.)

Wat hier in ieder geval ontbreekt, is de uitvoer van SHOW CREATE TABLE student;

Er komt een datatype niet overeen.

De classLeader VARCHAR(255) kolom mag geen refererende sleutel zijn verwijzing naar studentID INT .

De datatypes van de twee kolommen moeten overeenkomen.



  1. RAC-volgordeconflict

  2. Module-afhankelijkheden gebruiken, deel 2

  3. Huidige tijd in UTC gebruiken als standaardwaarde in PostgreSQL

  4. Postgres-query om te controleren of een string een getal is