Código de erro: 1215. Não é possível adicionar restrição de chave estrangeira (chaves estrangeiras)

CREATE DATABASE my_db;

CREATE TABLE class (
  classID int NOT NULL AUTO_INCREMENT,
  nameClass varchar(255),
  classLeader varchar(255),
  FOREIGN KEY (classLeader) REFERENCES student(studentID),
  PRIMARY KEY (classID));

CREATE TABLE student (
  studentID int NOT NULL AUTO_INCREMENT,
  lastName varchar(255),
  firstName varchar(255),
  classID int,
  FOREIGN KEY (classID) REFERENCES class(classID),
  PRIMARY KEY (studentID));

Eu estou tentando garantir a consistência de dados entre as tabelas usando a chave estrangeira para que o DBMS possa verificar se há erros; no entanto, parece que não podemos fazer isso por algum motivo. Qual é o erro e existe uma alternativa? Além disso, quando preencho uma tabela que tem uma chave estrangeira, não posso preencher o campo reservado para a (s) chave (s) estrangeira (s), certo? Além disso, uma chave estrangeira é considerada uma chave?

questionAnswers(6)

yourAnswerToTheQuestion