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

Bagaimana mengatasi campuran ilegal collations (latin1_general_ci,IMPLICIT) kesalahan

Saya telah menghabiskan setengah hari mencari jawaban atas kesalahan "campuran koleksi ilegal" yang ditakuti. Saya menemukan bahwa beberapa kolom dalam basis data saya tidak disusun secara khusus utf8_unicode_ci . Tampaknya mysql secara implisit menyusun kolom-kolom ini utf8_general_ci .

Secara khusus, menjalankan kueri 'SHOW CREATE TABLE table1' menghasilkan sesuatu seperti berikut:

| tabel1 | BUAT TABEL table1 (id int(11) NOT NULL,col1 varchar(4) SET KARAKTER utf8 NOT NULL,col2 int(11) NOT NULL,PRIMARY KEY (photo_id ,tag )) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |

Perhatikan baris 'col1' varchar(4) CHARACTER SET utf8 NOT NULL tidak memiliki susunan yang ditentukan. Saya kemudian menjalankan kueri berikut:

ALTER TABLE table1 CHANGE col1 col1 VARCHAR(4) SET KARAKTER utf8COLLATE utf8_unicode_ci NOT NULL;

Ini memecahkan kesalahan "Campuran koleksi ilegal" saya. Semoga ini bisa membantu orang lain di luar sana.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Posting Hasil MySQL Menggunakan AJAX melalui jQuery

  2. Rata-rata tertimbang MySQL dalam satu kueri

  3. Bagaimana cara menggabungkan fungsi agregat di MySQL?

  4. Bagaimana cara memaksa nama tabel peka huruf besar-kecil?

  5. driver oledb mysql