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