Sử dụng bảng INFORMATION_SCHEMA.SCHEMATA để lấy collation mặc định của database.
Cú pháp
SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'tên_database' LIMIT 1;
Ví dụ minh họa
Kiểm tra database sample:
mysql> SELECT DEFAULT_COLLATION_NAME
-> FROM information_schema.SCHEMATA
-> WHERE SCHEMA_NAME = 'sample'
-> LIMIT 1;
+------------------------+ | DEFAULT_COLLATION_NAME | +------------------------+ | utf8_general_ci | +------------------------+
Các collation phổ biến
| Collation | Charset | Đặc điểm |
|---|---|---|
| utf8mb4_general_ci | utf8mb4 | Khuyên dùng cho MySQL 5.7+/8.0, hỗ trợ emoji |
| utf8mb4_unicode_ci | utf8mb4 | Sắp xếp chính xác theo Unicode, chậm hơn general_ci |
| utf8_general_ci | utf8 | Cũ, không hỗ trợ emoji (3 byte max) |
| latin1_swedish_ci | latin1 | Mặc định cũ, không hỗ trợ tiếng Việt |
Xem collation của tất cả database
SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA;
Thay đổi collation mặc định của database
ALTER DATABASE tên_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Lưu ý: Thay đổi collation database chỉ ảnh hưởng đến các bảng/bảng mới tạo sau đó. Bảng hiện tại giữ nguyên collation cũ trừ khi ALTER TABLE.