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));
Próbuję zapewnić spójność danych między tabelami za pomocą klucza obcego, aby system DBMS mógł sprawdzić błędy; wydaje się jednak, że nie możemy tego zrobić z jakiegoś powodu. Jaki jest błąd i czy istnieje alternatywa? Ponadto, gdy wypełniam tabelę z kluczem obcym, nie mogę wypełnić pola zarezerwowanego dla klucza obcego, prawda? Czy klucz obcy uważany jest za klucz?Kod błędu: 1215. Nie można dodać ograniczenia klucza obcego (klucze obce)
TWORZENIE BAZY DANYCH my_db3; TWORZENIE klasa tabeli (CLASSID int NOT NULL AUTO_INCREMENT, nameClass varchar (255), classLeader int, KLUCZOWE obcych (classLeader) odniesienia uczeń (studentID) PRIMARY KEY (CLASSID)); SHOW CREATE studenta tabeli (studentID int NOT NULL AUTO_INCREMENT, varchar lastName (255), varchar firstName (255), CLASSID int, KLUCZOWE obcych (CLASSID) odniesienia klasy (CLASSID) klucz podstawowy (studentID)) ; –
Nadal dostaję błąd. –
@ GEORGEReed..Jest przydatny, jeśli możesz opublikować błąd, który otrzymujesz. – Rohan