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

Sự cố khi chèn ký tự / biểu tượng cảm xúc 4-Byte UTF-8 vào Cơ sở dữ liệu MySQL khi kích hoạt chèn đang hoạt động

Điều này xảy ra vì information_schema.processlist đang sử dụng bộ ký tự UTF8mb3. (UTF là một bí danh của UTFmb3). Truy vấn đơn giản minh họa điều này:

mysql> select info, "🔥" from information_schema.processlist;
+------------------------------------------------------+------+
| info                                                 | ?    |
+------------------------------------------------------+------+
| select info, "?" from information_schema.processlist | 🔥     |
+------------------------------------------------------+------+
1 row in set, 1 warning (0,00 sec)

Warning (Code 1366): Incorrect string value: '\xF0\x9F\x94\xA5" ...' for column 'INFO' at row 1

Cảnh báo trên có thể dẫn đến lỗi khi trình kích hoạt cố gắng chèn nội dung của info vào một bảng khác.

Tôi nghĩ rằng vấn đề là chuỗi truy vấn được lưu trữ như trong processlist bảng mà không chuyển đổi nó thành bộ ký tự mong đợi. Tôi đã gửi báo cáo lỗi về điều này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi SQL:1054, SQLState:42S22 Cột không xác định trong lỗi 'danh sách trường' Lỗi Java Spring Boot Mysql

  2. Chặn '0000-00-00' khỏi Trường Ngày MySQL

  3. Có gì sai với câu lệnh MySQL này:DECLARE @ID INT

  4. Sử dụng các phím ngoại để thay thế ràng buộc kiểm tra

  5. Cách trừ các đặc quyền trong MySQL