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

Có bất kỳ tác dụng phụ nào khi thay đổi mã hóa bảng mysql không?

Nguy hiểm Tôi nghĩ rằng đó ALTER sẽ hủy văn bản hiện có.

Ngoài ra, ... 'Tên' của bạn trông giống tiếng Trung Quốc, vì vậy tôi đoán rằng bạn muốn lưu trữ các ký tự Trung Quốc? Trong trường hợp đó, bạn nên sử dụng utf8mb4 , không chỉ utf8 . Điều này là do một số ký tự Trung Quốc có 4 byte (và không có trong Unicode BMP).

Tôi tin rằng bạn cần 2 bước :

ALTER TABLE notebooks MODIFY comments BLOB;
ALTER TABLE notebooks MODIFY comments TEXT
          CHARACTER SET utf8mb4  COLLATE utf8mb4_general_520_ci;

Nếu không thì các ký tự latin1 sẽ được "chuyển đổi" thành ut8. Nhưng nếu bạn thực sự có tiếng Trung trong cột, bạn không có latin1. Thay đổi 2 bước, ở trên, (1) tắt bất kỳ kiến ​​thức nào về bộ ký tự và (2) thiết lập rằng các byte thực sự được mã hóa utf8mb4.

Để an toàn hơn , làm trước

RENAME TABLE notebooks TO old;
CREATE TABLE notebooks LIKE old;
INSERT INTO notebooks SELECT * FROM old;

Sau đó thực hiện hai ALTER và kiểm tra kết quả. Nếu gặp sự cố, bạn có thể RENAME để lấy lại bản sao cũ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Nhóm theo Thứ tự theo DESC

  2. pandas 'read_sql với danh sách các giá trị cho điều kiện WHERE

  3. Xác minh Đăng nhập bằng Mật khẩu Bcrypt

  4. Làm thế nào để chuyển đổi thời gian tính bằng giây sang định dạng HH:MM:SS trong MySQL?

  5. không được hỗ trợ Quét, lưu trữ trình điều khiển. Loại giá trị [] uint8 thành loại * thời gian.Thời gian