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

Cách giải quyết lỗi kết hợp bất hợp pháp các đối chiếu (latin1_general_ci, IMPLICIT)

Tôi đã dành nửa ngày để tìm kiếm câu trả lời cho lỗi "Kết hợp bất hợp pháp" đáng sợ. Tôi nhận thấy rằng một số cột trong cơ sở dữ liệu của mình không được đối chiếu cụ thể utf8_unicode_ci . Có vẻ như mysql đã ngầm đối chiếu các cột này utf8_general_ci .

Cụ thể, khi chạy truy vấn 'SHOW CREATE TABLE table1', kết quả như sau:

| bảng1 | TẠO BẢNG table1 (id int (11) NOT NULL, col1 varchar (4) BỘ NHÂN VẬT utf8 NOT NULL, col2 int (11) NOT NULL, PRIMARY KEY (photo_id , thẻ tag )) ENGINE =InnoDB DEFAULT CHARSET =utf8 COLLATE =utf8_unicode_ci |

Lưu ý dòng 'col1' varchar (4) BỘ NHÂN VẬT utf8 NOT NULL không có đối chiếu được chỉ định. Sau đó, tôi đã chạy truy vấn sau:

ALTER TABLE table1 THAY ĐỔI col1 col1 VARCHAR (4) BỘ NHÂN VẬT utf8COLLATE utf8_unicode_ci NOT NULL;

Điều này đã giải quyết được lỗi "Kết hợp đối chiếu bất hợp pháp" của tôi. Hy vọng điều này có thể giúp ích cho người khác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm nạp mảng chức năng nhân đôi giá trị ở mỗi vị trí của mảng?

  2. Tạo một Trackback Hình ảnh cho một nhà xuất bản web bên ngoài để liên kết đến trang web của tôi

  3. MySQL:Một thủ tục được lưu trữ có thể gọi một chương trình Java không?

  4. MySQL Chọn các hàng bằng một khóa hoặc lùi lại để chọn theo khóa mặc định

  5. MySQL Chọn các giá trị riêng biệt từ 2 cột