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

Làm thế nào để sửa lỗi giá trị chuỗi không chính xác?

CẬP NHẬT cho câu trả lời bên dưới:

Thời gian câu hỏi được hỏi, "UTF8" trong MySQL có nghĩa là utf8mb3 . Trong khi chờ đợi, utf8mb4 đã được thêm vào, nhưng theo hiểu biết của tôi, MySQL "UTF8" không được chuyển sang nghĩa là utf8mb4 .

Điều đó có nghĩa là, bạn cần đặt cụ thể "utf8mb4", nếu bạn muốn (và bạn nên sử dụng utf8mb4 )

Tôi sẽ giữ điều này ở đây thay vì chỉ chỉnh sửa câu trả lời, để làm rõ rằng vẫn có sự khác biệt khi nói "UTF8"

Bản gốc

Tôi sẽ không đề xuất câu trả lời Richies, bởi vì bạn đang làm hỏng dữ liệu bên trong cơ sở dữ liệu. Bạn sẽ không khắc phục được sự cố của mình nhưng cố gắng "ẩn" sự cố và không thể thực hiện các hoạt động cơ sở dữ liệu thiết yếu với dữ liệu được nhồi nhét.

Nếu bạn gặp phải lỗi này hoặc dữ liệu bạn đang gửi không được mã hóa UTF-8 hoặc kết nối của bạn không phải là UTF-8. Trước tiên, hãy xác minh rằng nguồn dữ liệu (tệp, ...) thực sự là UTF-8.

Sau đó, kiểm tra kết nối cơ sở dữ liệu của bạn, bạn nên thực hiện việc này sau khi kết nối:

SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;

Tiếp theo, xác minh rằng các bảng nơi dữ liệu được lưu trữ có bộ ký tự utf8mb4:

SELECT
  `tables`.`TABLE_NAME`,
  `collations`.`character_set_name`
FROM
  `information_schema`.`TABLES` AS `tables`,
  `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
  `tables`.`table_schema` = DATABASE()
  AND `collations`.`collation_name` = `tables`.`table_collation`
;

Cuối cùng, hãy kiểm tra cài đặt cơ sở dữ liệu của bạn:

mysql> show variables like '%colla%';
mysql> show variables like '%charac%';

Nếu nguồn, phương tiện và đích là utf8mb4, vấn đề của bạn đã không còn nữa;)



  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ác mẫu ngẫu nhiên đơn giản từ cơ sở dữ liệu Sql

  2. Cách chuyển tất cả cơ sở dữ liệu MySQL từ máy chủ cũ sang máy chủ mới

  3. Số lần đếm Mysql của chuỗi con, sau đó sắp xếp theo thứ tự

  4. Cách viết câu lệnh IF ELSE trong truy vấn MySQL

  5. Sử dụng SQL để xác định số liệu thống kê về số lượng từ của một trường văn bản