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

Làm thế nào để thay đổi tên bảng MySQL trong máy chủ Linux để không phân biệt chữ hoa chữ thường?

Độ nhạy chữ hoa chữ thường của MySQL theo mặc định được xử lý bởi hệ thống tệp, đó là lý do tại sao bạn tìm thấy sự khác biệt này:

9.2.2. Độ phân biệt chữ hoa chữ thường của số nhận dạng

Trong MySQL, cơ sở dữ liệu tương ứng với các thư mục trong thư mục dữ liệu. Mỗi bảng trong cơ sở dữ liệu tương ứng với ít nhất một tệp trong thư mục cơ sở dữ liệu (và có thể nhiều hơn, tùy thuộc vào công cụ lưu trữ). Do đó, độ phân biệt chữ hoa chữ thường của hệ điều hành cơ bản đóng một vai trò trong sự phân biệt chữ hoa chữ thường của cơ sở dữ liệu và tên bảng. Điều này có nghĩa là cơ sở dữ liệu và tên bảng không phân biệt chữ hoa chữ thường trong Windows và phân biệt chữ hoa chữ thường trong hầu hết các loại Unix. Một ngoại lệ đáng chú ý là Mac OS X, dựa trên Unix nhưng sử dụng loại hệ thống tệp mặc định (HFS +) không phân biệt chữ hoa chữ thường. Tuy nhiên, Mac OS X cũng hỗ trợ khối lượng UFS, phân biệt chữ hoa chữ thường giống như trên bất kỳ Unix nào. Xem Phần 1.8.4, “Phần mở rộng MySQL cho SQL Chuẩn”.

May mắn thay, câu tiếp theo có thể giúp bạn:

Lower_case_table_names biến hệ thống cũng ảnh hưởng đến cách máy chủ xử lý độ phân biệt chữ hoa chữ thường của số nhận dạng, như được mô tả sau trong phần này.

lower_case_table_names blurb:

Nếu được đặt thành 0, tên bảng được lưu trữ như đã chỉ định và các phép so sánh có phân biệt chữ hoa chữ thường. Nếu được đặt thành 1, tên bảng được lưu trữ bằng chữ thường trên đĩa và các phép so sánh không phân biệt chữ hoa chữ thường. Nếu được đặt thành 2, tên bảng được lưu trữ như đã cho nhưng được so sánh bằng chữ thường. Tùy chọn này cũng áp dụng cho tên cơ sở dữ liệu và bí danh bảng. Để biết thêm thông tin, hãy xem Phần 9.2.2, “Độ phân biệt chữ hoa chữ thường của số nhận dạng”.

Bạn không nên đặt biến này thành 0 nếu bạn đang chạy MySQL trên hệ thống có tên tệp không phân biệt chữ hoa chữ thường (chẳng hạn như Windows hoặc Mac OS X). Nếu bạn đặt biến này thành 0 trên một hệ thống như vậy và truy cập vào các tên bảng MyISAM bằng các ngăn chữ cái khác nhau, thì có thể dẫn đến hỏng chỉ mục. Trên Windows, giá trị mặc định là 1. Trên Mac OS X, giá trị mặc định là 2.

Vì vậy, có vẻ như bạn nên đặt lower_case_table_names thành 1 trong tệp cấu hình MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng NẾU TỒN TẠI của MySQL

  2. Nhóm mệnh đề WHERE trong Codeigniter

  3. Cách xây dựng menu cấp độ không giới hạn thông qua PHP và mysql

  4. Làm cách nào để tìm tất cả các bảng có khóa ngoại tham chiếu đến table.column cụ thể và có giá trị cho các khóa ngoại đó?

  5. sql tham gia hai bảng