sql >> Database teknologi >  >> RDS >> Mysql

Kunne ikke tilføje den fremmede nøgle-begrænsning. Manglende indeks for begrænsningsfejlkode:1822

Du har en sammensat primærnøgle, så du skal bruge en sammensat fremmednøgle:

CREATE TABLE Prerequisite_to(
    infs CHAR(4),
    course_number CHAR(3),
    PRIMARY KEY (infs,course_number),
    FOREIGN KEY (infs, course_number) REFERENCES Class(infs, course_number)
);

Bare for en god ordens skyld, så er jeg ikke fan af sammensatte primærnøgler. Jeg tror også, at forudsætninger kræver to kursusreferencer. Så:

CREATE TABLE Classes (
    class_id int auto_increment primary key,
    infs CHAR(4) NOT NULL,
    course_number CHAR(3) NOT NULL,
    unique (infs, course_number)
);

CREATE TABLE Prerequisites (
    preresequisite_id int auto_increment primary key,
    class_id int,
    prerequisite_class_id int,
    FOREIGN KEY (class_id) REFERENCES Classes(class_id),
    FOREIGN KEY (prerequisite_class_id) REFERENCES Classes(class_id)
);



  1. MySQL:betingelse på resultatet af GROUP_CONCAT?

  2. Undtagelse opstod under behandlingsanmodning:null:java.lang.NullPointerException ved hjælp af Spring, Struts 2, Hibernate, MySql

  3. Flere formularer og én behandlingsside

  4. MySQL:Embedded JSON vs table