Docker mysql Lower_case_table_names
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ữ). Kích hoạt cũng tương ứng với các tập tin. Do đó, phân biệt chữ hoa chữ thường của hệ điều hành cơ bản đóng một phần trong phân biệt chữ hoa chữ thường của tên cơ sở dữ liệu, bảng và trình kích hoạt. Điều này có nghĩa là những tên như vậy không phân biệt chữ hoa chữ thường trong Windows, nhưng 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à macOS, 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, macOS cũng hỗ trợ các ổ đĩa UFS, phân biệt chữ hoa chữ thường giống như trên mọi Unix. Xem Phần 1. 7. 1, “Phần mở rộng MySQL cho SQL chuẩn”. Biến hệ thống 1 cũng ảnh hưởng đến cách máy chủ xử lý độ nhạy trường hợp của mã định danh, như được mô tả sau trong phần nàyGhi chú Mặc dù tên cơ sở dữ liệu, bảng và trình kích hoạt không phân biệt chữ hoa chữ thường trên một số nền tảng, nhưng bạn không nên đề cập đến một trong những tên này bằng cách sử dụng các trường hợp khác nhau trong cùng một câu lệnh. Câu lệnh sau đây sẽ không hoạt động vì nó vừa đề cập đến một bảng là 2 vừa là 3
Tên phân vùng, phân vùng con, cột, chỉ mục, thói quen được lưu trữ, sự kiện và nhóm tài nguyên không phân biệt chữ hoa chữ thường trên bất kỳ nền tảng nào, cũng như bí danh cột Tuy nhiên, tên của các nhóm logfile phân biệt chữ hoa chữ thường. Điều này khác với SQL tiêu chuẩn Theo mặc định, bí danh bảng phân biệt chữ hoa chữ thường trên Unix, nhưng không phải như vậy trên Windows hoặc macOS. Câu lệnh sau đây sẽ không hoạt động trên Unix, vì nó đề cập đến bí danh là 4 và là 5
Tuy nhiên, tuyên bố tương tự này được cho phép trên Windows. Để tránh các vấn đề gây ra bởi sự khác biệt như vậy, tốt nhất là áp dụng một quy ước nhất quán, chẳng hạn như luôn tạo và tham chiếu đến cơ sở dữ liệu và bảng bằng cách sử dụng tên chữ thường. Quy ước này được khuyến nghị để có tính di động tối đa và dễ sử dụng Cách tên bảng và cơ sở dữ liệu được lưu trữ trên đĩa và được sử dụng trong MySQL bị ảnh hưởng bởi biến hệ thống 1. 1 có thể lấy các giá trị được hiển thị trong bảng sau. Biến này không ảnh hưởng đến độ phân biệt chữ hoa chữ thường của số nhận dạng trình kích hoạt. Trên Unix, giá trị mặc định của 1 là 0. Trên Windows, giá trị mặc định là 1. Trên macOS, giá trị mặc định là 2. Chỉ có thể cấu hình 1 khi khởi tạo máy chủ. Việc thay đổi cài đặt 1 sau khi khởi tạo máy chủ bị cấmValueMeaning_______12Tên bảng và cơ sở dữ liệu được lưu trữ trên đĩa bằng cách sử dụng chữ cái được chỉ định trong câu lệnh 3 hoặc 4. So sánh tên có phân biệt chữ hoa chữ thường. Bạn nên not đặ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 macOS). Nếu bạn buộc biến này thành 0 với 5 trên hệ thống tệp phân biệt chữ hoa chữ thường và truy cập tên bảng 6 bằng cách sử dụng các chữ cái khác nhau, thì có thể dẫn đến hỏng chỉ mục. 7Tên bảng được lưu bằng chữ thường trên đĩa và so sánh tên không phân biệt chữ hoa chữ thường. MySQL chuyển đổi tất cả các tên bảng thành chữ thường khi lưu trữ và tra cứu. Hành vi này cũng áp dụng cho tên cơ sở dữ liệu và bí danh bảng. 8Tên bảng và cơ sở dữ liệu được lưu trữ trên đĩa bằng cách sử dụng chữ cái được chỉ định trong câu lệnh 3 hoặc 4, nhưng MySQL chuyển đổi chúng thành chữ thường khi tra cứu. So sánh tên không phân biệt chữ hoa chữ thường. Tính năng này chỉtrên các hệ thống tệp không phân biệt chữ hoa chữ thường. Tên bảng 11 và tên dạng xem được lưu ở dạng chữ thường, như đối với 12Nếu bạn chỉ sử dụng MySQL trên một nền tảng, thông thường bạn không phải sử dụng cài đặt 1 ngoài cài đặt mặc định. Tuy nhiên, bạn có thể gặp khó khăn nếu muốn chuyển bảng giữa các nền tảng khác nhau về phân biệt chữ hoa chữ thường của hệ thống tệp. Ví dụ: trên Unix, bạn có thể có hai bảng tên khác nhau là 2 và 3, nhưng trên Windows hai tên này được coi là giống hệt nhau. Để tránh các sự cố truyền dữ liệu phát sinh từ chữ cái của cơ sở dữ liệu hoặc tên bảng, bạn có hai tùy chọn
Tên đối tượng có thể được coi là trùng lặp nếu dạng chữ hoa của chúng bằng nhau theo đối chiếu nhị phân. Điều đó đúng với tên của con trỏ, điều kiện, thủ tục, hàm, điểm lưu trữ, tham số thủ tục được lưu trữ, biến cục bộ của chương trình được lưu trữ và plugin. Nó không đúng với tên cột, ràng buộc, cơ sở dữ liệu, phân vùng, câu lệnh được chuẩn bị bằng 23, bảng, trình kích hoạt, người dùng và biến do người dùng xác địnhPhân biệt chữ hoa chữ thường của hệ thống tệp có thể ảnh hưởng đến các tìm kiếm trong các cột chuỗi của bảng 24. Để biết thêm thông tin, hãy xem Phần 10. 8. 7, “Sử dụng Đối chiếu trong Tìm kiếm INFORMATION_SCHEMA” |