Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Gagal menambahkan batasan kunci asing. Indeks yang hilang untuk kendala Kode Kesalahan:1822

Anda memiliki kunci primer komposit, jadi Anda memerlukan kunci asing komposit:

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

Sebagai catatan, saya bukan penggemar kunci primer komposit. Saya juga berpikir prasyarat perlu dua referensi kursus. Jadi:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara InnoDB menyimpan kolom karakter?

  2. Kesalahan untuk mengubah konten variabel tergantung pada status sesi

  3. Mungkinkah melakukan kunci asing MySQL ke salah satu dari dua tabel yang mungkin?

  4. html <select multiple=multiple> + Pencarian Kueri SQL

  5. Ketika Anda membuat subdomain secara otomatis pada pendaftaran pengguna, apakah itu membuat situs web baru atau memberikan tampilan situs web?