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

Mã lỗi:1822 khi các kiểu dữ liệu khớp với nhau, với khóa tổng hợp

Vấn đề là do khóa ngoại, subj_code , là một phần của nhiều cột khóa chính (PK) trong bảng tham chiếu enrolment :

primary key (stud_id, subj_code, semester, year)

nơi cột này (subj_code ) không phải là trang ngoài cùng bên trái .

Bảng student không gặp sự cố này vì cột khóa ngoại của nó stud_id là cột ngoài cùng bên trái của PK trong bảng được tham chiếu.

Để giải quyết vấn đề này, bạn có thể tạo một chỉ mục mới cho cột được tham chiếu:

ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);

Lưu ý: Bạn phải làm tương tự đối với bảng tham chiếu grade trong khóa ngoại khác.

Demo tại đây



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn một đối tượng datetime.datetime trong Python vào MySQL

  2. Làm cách nào để sửa đổi kích thước của cột trong bảng MySQL?

  3. Khởi động hoặc dừng cơ sở dữ liệu mysql bằng lập trình java

  4. Mệnh đề Where để lọc hàng trong MySQL

  5. Có gì mới trong ProxySQL 2.0