Cách tạo trường hợp bảng MySQL

Trong Windows, không có tên bảng phân biệt chữ hoa chữ thường theo mặc định nhưng trong UNIX theo mặc định, các bảng có phân biệt chữ hoa chữ thường. Bạn có thể gặp sự cố nếu bạn di chuyển cơ sở dữ liệu của mình từ cửa sổ sang nền tảng UNIX và mã của bạn gặp lỗi 'không có bảng nào tồn tại' trong đó mã của bạn hoạt động tốt trong cửa sổ. Điều này là do tên bảng theo mặc định phân biệt chữ hoa chữ thường trong UNIX

Thí dụ

Nếu bạn có tên bảng là chữ hoa có tên là employee nhưng khi code của bạn có tên bảng là chữ thường thì nó báo lỗi hoặc ngược lại

Xin chào, @Muhammad Salman Afzal Chào mừng bạn đến với diễn đàn Hỏi & Đáp của Microsoft và xin lỗi vì sự cố bạn đang gặp phải

Đổi tên bảng chỉ là cách tiếp cận hiện tại có thể được thực hiện và sau đó kết xuất/khôi phục thành Máy chủ linh hoạt

Rất tiếc, Azure chưa có tùy chọn này, nhưng có vẻ như yêu cầu của bạn là một tùy chọn hợp lệ và cần được nhóm PG triển khai
https. //học. Microsoft. com/en-us/azure/mysql/flexible-server/concepts-limitations

Chúng tôi không thể đặt thông số máy chủ “lower_case_table_names” thành 0. Tham số này chỉ tác động đến độ nhạy trường hợp của tên bảng. FYI. tham số này không thể thay đổi
Trong trường hợp cụ thể của MySQL 8, ngay cả do giới hạn của MySQL (Không phải giới hạn Azure), không được phép khởi động máy chủ với cài đặt Lower_case_table_names khác với cài đặt được sử dụng khi khởi tạo máy chủ ()

Theo tài liệu này "Sử dụng Lower_case_table_names=0 trên Unix và Lower_case_table_names=2 trên Windows. Điều này bảo tồn chữ cái của cơ sở dữ liệu và tên bảng. Điều bất lợi của điều này là bạn phải đảm bảo rằng các câu lệnh của bạn luôn đề cập đến tên bảng và cơ sở dữ liệu của bạn với ký tự chính xác trên Windows. Nếu bạn chuyển các câu lệnh của mình sang Unix, trong đó chữ hoa là quan trọng, chúng sẽ không hoạt động nếu chữ hoa không chính xác. "

Cách tạo trường hợp bảng MySQL

Trong trường hợp bạn có bất kỳ câu hỏi hoặc thắc mắc nào, vui lòng cho tôi biết

Trân trọng
geetha

Xin đừng quên nhấp vào nút

Cách tạo trường hợp bảng MySQL
hoặc ủng hộ
Cách tạo trường hợp bảng MySQL
bất cứ khi nào thông tin được cung cấp giúp ích cho bạn. Áp phích gốc giúp cộng đồng tìm câu trả lời nhanh hơn bằng cách xác định câu trả lời đúng.

5 Hiển thị nhận xét cho câu trả lời này Báo cáo

Bài báo cáo

  1. Cách tạo trường hợp bảng MySQL

    Muhammad Salman Afzal 21 Điểm danh tiếng

    2022-09-06T18. 33. 25. 537+00. 00

    Nó không hoạt động. Tôi đã thử đổi tên bảng (chuyển đổi chúng thành trường hợp lạc đà), nhưng nó không hoạt động. Mặc dù, khi tôi thay đổi tên hoàn toàn, nó hoạt động, điều này được mong đợi nhưng nó vẫn ở dạng chữ thường, điều này cũng được mong đợi do lowe_case_table_name là 1

    Thật tò mò là tại sao loại câu hỏi này chưa từng được hỏi trước đây đối với Cơ sở dữ liệu Azure cho MySQL?

    Sẽ thật tuyệt nếu trước khi tạo phiên bản, nhà phát triển có tùy chọn định cấu hình các tham số máy chủ như thế này hoặc có thể chọn các tùy chọn mặc định để nhà phát triển đến trước, đó là mục tiêu của Azure (phải không?)

    0 {count} phiếu bầu Báo cáo

    Bài báo cáo

  2. Cách tạo trường hợp bảng MySQL

    Geetha Thatipatri-MSFT 14.941 Điểm danh tiếng Nhân viên của Microsoft

    2022-09-09T12. 44. 45. 91+00. 00

    Xin chào, @Muhammad Salman Afzal Cảm ơn phản hồi của bạn, hãy để tôi kiểm tra với nhóm sản phẩm nội bộ để cung cấp thêm thông tin chi tiết cho bạn

    Câu lệnh CASE duyệt qua các điều kiện và trả về giá trị khi điều kiện đầu tiên được đáp ứng (giống như câu lệnh IF-THEN-ELSE). Vì vậy, khi một điều kiện là đúng, nó sẽ ngừng đọc và trả về kết quả

    Tên bảng MariaDB và MySQL phân biệt chữ hoa chữ thường nếu chạy trên các hệ thống phân biệt chữ hoa chữ thường như Linux và Unix. Tuy nhiên, Windows không thực thi phân biệt chữ hoa chữ thường đối với các thư mục và tệp của nó. Nó khiến tên bảng MySQL và MariaDB trong Windows không phân biệt chữ hoa chữ thường

    Điều đó có nghĩa là bảng chữ thường có tên tablename cũng giống như chữ hoa TABLENAME hoặc TableName và việc sử dụng bất kỳ bảng nào trong số này sẽ không tạo ra bất kỳ sự khác biệt nào trong truy vấn của bạn. Đó là vì MySQL và MariaDB lưu trữ và truy vấn các bảng cơ sở dữ liệu dựa trên tên tệp và thư mục của hệ thống tệp

    Bạn có thể sử dụng tên bảng phân biệt chữ hoa chữ thường cho MySQL và MariaDB trong Linux và các hệ thống Unix khác hoặc sử dụng tên bảng phân biệt chữ hoa chữ thường trong Windows bằng cách bật tùy chọn Lower_case_table_names trong tệp cấu hình

    Các bước đặt phân biệt chữ hoa chữ thường cho tên bảng MySQL và MariaDB

    1. Mở tệp cấu hình MySQL hoặc MariaDB bằng trình chỉnh sửa yêu thích của bạn.

      $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

    2. Tìm và đặt giá trị Lower_case_table_names trong phần [mysqld].

      lower_case_table_names=1

      Thêm dòng nếu nó chưa tồn tại. Đặt giá trị thành các mục sau theo yêu cầu của bạn

      Mô tả giá trị0Được lưu trữ dựa trên câu lệnh CREATE và phân biệt chữ hoa chữ thường1Được lưu trữ bằng chữ thường và không phân biệt chữ hoa chữ thường2Được lưu trữ dựa trên câu lệnh CREATE và không phân biệt chữ hoa chữ thường

      Làm thế nào để viết điều kiện trường hợp trong MySQL?

      Câu lệnh TRƯỜNG HỢP MySQL .
      TRƯỜNG HỢP. KHI điều kiện1 THEN kết quả1. KHI điều kiện2 THÌ kết quả2. WHEN điều kiện THEN kết quả. kết quả KHÁC. .
      Thí dụ. CHỌN OrderID, Số lượng, TRƯỜNG HỢP. KHI Số lượng > 30 THÌ 'Số lượng lớn hơn 30'.
      Thí dụ. CHỌN Tên khách hàng, Thành phố, Quốc gia. Từ khách hàng. ĐẶT BỞI

      Cách tạo trường hợp bảng MySQL

      Hiển thị hoạt động trên bài đăng này. .
      Định vị tệp tại /etc/mysql/my. cnf
      Chỉnh sửa tệp bằng cách thêm các dòng sau. [mysqld] Lower_case_table_names=1
      sudo /etc/init. khởi động lại d/mysql
      Chạy các biến mysqladmin -u root -p. bảng grep để kiểm tra xem Lower_case_table_names có phải là 1 không

      Làm cách nào để thay đổi Lower_case_table_names trong MySQL?

      Để thay đổi giá trị của 'lower_case_table_names', hãy làm theo các bước bên dưới. .
      Đi đến của tôi. tập tin conf
      tìm kiếm cho. # Máy chủ MySQL [mysqld]
      thêm cái này ngay bên dưới nó. Lower_case_table_names = 2
      lưu tệp và khởi động lại dịch vụ MySQL

      MySQL là trường hợp

      Tên bảng được lưu trữ 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.