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

Tại sao quá trình di chuyển Rails Active Record lại tạo ra COLLATE utf8_bin trên các cột varchar của mysql

utf8_bin collation được sử dụng để so sánh các chuỗi trong chế độ phân biệt chữ hoa chữ thường, theo giá trị nhị phân của mỗi ký tự. Nó có thể phụ thuộc vào cài đặt cục bộ của cơ sở dữ liệu của bạn mà bộ ký tự hoặc đối chiếu được sử dụng. Ví dụ đối với cơ sở dữ liệu MySQL, bạn có thể kiểm tra chế độ đối chiếu của cơ sở dữ liệu MySQL của mình bằng lệnh MySQL sau

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

..hoặc bằng cách sử dụng cái này ..

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

Trong trường hợp của bạn, một trong những giá trị này phải là utf8_bin . Các giá trị chung cho cơ sở dữ liệu có thể được đặt trong tệp cấu hình của bạn, có thể là my.cnf cho MySQL. Để tạo bảng MySQL với một công cụ, bộ ký tự hoặc đối chiếu cụ thể, bạn có thể sử dụng các tùy chọn di chuyển:

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

Theo tài liệu, bộ ký tự bảng và đối chiếu là các phần mở rộng của MySQL, không có những thứ như vậy trong SQL tiêu chuẩn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CẬP NHẬT / XÓA trong mysql và nhận danh sách id hàng bị ảnh hưởng?

  2. MySQL:Phân tích nhanh các loại liên kết

  3. libmysqlclient15-dev trên máy Mac?

  4. tạo 3 danh sách thả xuống phụ thuộc bằng php ajax mysql

  5. Tại sao STRAIGHT_JOIN lại cải thiện đáng kể truy vấn này và nó có ý nghĩa gì khi nó được viết sau từ khóa SELECT?