Код ошибки: 1215. Невозможно добавить ограничение внешнего ключа (внешние ключи)

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));

Я пытаюсь обеспечить согласованность данных между таблицами, используя внешний ключ, чтобы СУБД могла проверять ошибки; однако, кажется, мы не можем этого сделать по какой-то причине. В чем ошибка и есть ли альтернатива? Кроме того, когда я заполняю таблицу с внешним ключом, я не могу заполнить поле, зарезервированное для внешнего ключа (ключей), верно? Кроме того, внешний ключ вообще считается ключом?