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

Mengapa migrasi Rails Active Record menghasilkan COLLATE utf8_bin pada kolom varchar mysql

utf8_bin collation digunakan untuk membandingkan string dalam mode case sensitive, dengan nilai biner dari setiap karakter. Ini mungkin tergantung pada pengaturan lokal database Anda yang charset atau susunannya digunakan. Misalnya untuk database MySQL, Anda dapat memeriksa mode collation database MySQL Anda dengan perintah MySQL berikut

mysql> SELECT COLLATION(VERSION());
+----------------------+
| COLLATION(VERSION()) |
+----------------------+
| utf8_general_ci      |
+----------------------+

..atau dengan menggunakan yang ini..

mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+

Dalam kasus Anda, salah satu dari nilai ini harus utf8_bin . Nilai umum untuk database dapat diatur dalam file konfigurasi Anda, mungkin my.cnf untuk MySQL. Untuk membuat tabel MySQL dengan mesin, rangkaian karakter, atau susunan tertentu, Anda dapat menggunakan opsi migrasi:

create_table :users, 
        :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci'
        ...

Menurut dokumentasi, kumpulan karakter dan susunan tabel adalah ekstensi MySQL, tidak ada hal seperti itu di SQL standar.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan JSON_SEARCH dan JSON_EXTRACT dapatkan saya:Ekspresi jalur JSON tidak valid.

  2. MYSQL pilih teman bersama

  3. Cara memperbaiki grup kueri dengan only_full_group_by

  4. bukan kueri peka huruf besar-kecil di mysql

  5. Bagaimana saya bisa memeriksa pernyataan SQL (Saya) untuk kebenaran sintaksis?