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

Thay đổi mã hóa ký tự MySQL. Dữ liệu có được bảo toàn toàn vẹn không?

Mọi (kiểu chuỗi ký tự) cột riêng bộ ký tự và siêu dữ liệu đối chiếu.

Nếu, khi cột Kiểu dữ liệu của đã được chỉ định (tức là khi nó được tạo hoặc thay đổi lần cuối), không có bộ ký tự / đối chiếu nào được đưa ra rõ ràng, khi đó bộ ký tự và đối chiếu mặc định của bảng sẽ được sử dụng cho cột.

Nếu, khi bảng đã được chỉ định, không có bộ ký tự / đối chiếu mặc định nào được đưa ra rõ ràng, khi đó bộ ký tự và đối chiếu mặc định của cơ sở dữ liệu sẽ được sử dụng cho mặc định của bảng.

Các lệnh mà bạn trích dẫn trong câu hỏi của mình chỉ thay đổi các bộ ký tự / đối chiếu mặc định như vậy cho cơ sở dữ liệu và bảng tương ứng. Nói cách khác, chúng sẽ chỉ ảnh hưởng đến các bảng và cột được tạo sau đó — chúng sẽ không ảnh hưởng đến các cột (hoặc dữ liệu) hiện có.

Để cập nhật dữ liệu hiện có, trước tiên bạn nên đọc Thay đổi Bộ ký tự phần của trang thủ công trên ALTER TABLE :

Để chỉ thay đổi mặc định bộ ký tự cho một bảng, sử dụng câu lệnh sau:

ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name;

Từ DEFAULT Là tùy chọn. Bộ ký tự mặc định là bộ ký tự được sử dụng nếu bạn không chỉ định bộ ký tự cho các cột mà bạn thêm vào bảng sau này (ví dụ:với ALTER TABLE ... ADD column ).

Khi foreign_key_checks biến hệ thống được bật, đây là cài đặt mặc định, không cho phép chuyển đổi bộ ký tự trên các bảng có cột chuỗi ký tự được sử dụng trong ràng buộc khóa ngoại. Cách giải quyết là tắt foreign_key_checks trước khi thực hiện chuyển đổi bộ ký tự. Bạn phải thực hiện chuyển đổi trên cả hai bảng có liên quan đến ràng buộc khóa ngoại trước khi bật lại foreign_key_checks . Nếu bạn bật lại foreign_key_checks sau khi chuyển đổi chỉ một trong các bảng, một ON DELETE CASCADE hoặc ON UPDATE CASCADE hoạt động có thể làm hỏng dữ liệu trong bảng tham chiếu do chuyển đổi ngầm xảy ra trong các hoạt động này (Lỗi # 45290, Lỗi # 74816).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi ngày thành tên tháng và năm

  2. Mysql, Sự cố danh mục lồng nhau có thể xảy ra

  3. Vấn đề về Django và mysql trên Mavericks

  4. CURRENT_DATE / CURDATE () không hoạt động dưới dạng giá trị DATE mặc định

  5. Truy cập hàng được tạo cuối cùng trong PHP / MySQL