Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thêm được ràng buộc khóa ngoài. Thiếu chỉ mục cho ràng buộc Mã lỗi:1822

Bạn có một khóa chính tổng hợp, vì vậy bạn cần một khóa ngoại tổng hợp:

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

Tôi không phải là một fan hâm mộ của các phím chính tổng hợp. Tôi cũng nghĩ rằng điều kiện tiên quyết cần có hai tài liệu tham khảo khóa học. Vì vậy:

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. Điền vào CHÈN với Kết quả từ CHỌN

  2. xoay trong các truy vấn mysql

  3. PHP &mySQL:Năm 2038 Lỗi:Nó là gì? Làm thế nào để giải quyết nó?

  4. Nhập dữ liệu từ tệp JSON vào cơ sở dữ liệu MySQL bằng java

  5. Làm cách nào để đặt lại các từ dừng trong MYSQL?