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));
Sto cercando di assicurare la coerenza dei dati tra le tabelle utilizzando chiave esterna in modo che il DBMS può controllare per eventuali errori; tuttavia, sembra che non possiamo farlo per qualche motivo. Qual è l'errore e c'è un'alternativa? Inoltre, quando riempio una tabella con una chiave esterna, non riesco a compilare il campo riservato alle chiavi esterne, giusto? Inoltre, una chiave straniera è considerata una chiave?errore: 1215. Impossibile aggiungere vincolo di chiave esterna (chiavi esterne)
CREATE DATABASE my_db3; CREATE TABLE classe (classid int NOT NULL AUTO_INCREMENT, nameClass varchar (255), classLeader int, FOREIGN KEY (classLeader) RIFERIMENTI studente (studentID), PRIMARY KEY (classid)); SHOW CREATE studente TABLE (studentID int NOT AUTO_INCREMENT NULL, lastName varchar (255), firstName varchar (255), ClassID int, FOREIGN KEY (classid) riferimenti alle classi (classid), PRIMARY KEY (studentID)) ; –
Ricevo ancora un errore. –
@ GEORGEReed ... Sarebbe utile se è possibile pubblicare un errore. – Rohan