sql >> Databasteknik >  >> RDS >> Mysql

Det gick inte att lägga till den främmande nyckeln. Saknat index för begränsningsfelkod:1822

Du har en sammansatt primärnyckel, så du behöver en sammansatt främmande nyckel:

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

Bara för ordens skull, jag är inte ett fan av sammansatta primärnycklar. Jag tror också att förkunskaper behöver två kursreferenser. 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. Laravel :Odefinierat index:drivrutin

  2. REGEXP_REPLACE() Funktion i Oracle

  3. Hur kan jag jämföra tid i SQL Server?

  4. Hur cyklar man med en array i MySQL?