Bạn cần thực hiện một câu lệnh bảng thay thế cho mỗi bảng. Tuyên bố sẽ theo mẫu sau:
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
Bây giờ để lấy tất cả các bảng trong cơ sở dữ liệu, bạn cần thực hiện truy vấn sau:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDataBaseName"
AND TABLE_TYPE="BASE TABLE";
Vì vậy, bây giờ hãy để MySQL viết mã cho bạn:
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE your_collation_name_here;") AS ExecuteTheString
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDatabaseName"
AND TABLE_TYPE="BASE TABLE";
Bạn có thể sao chép kết quả và thực thi chúng. Tôi chưa kiểm tra cú pháp nhưng bạn có thể tìm ra phần còn lại. Hãy coi nó như một bài tập nhỏ.
Hy vọng điều đó giúp ích!