Jika kolom menggunakan set karakter tabel default, maka hanya satu kueri per tabel untuk dikonversi:
ALTER TABLE t CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Jika set karakter diatur secara individual pada setiap kolom, AFAIK tidak ada cara untuk melakukannya pada semua kolom dari semua tabel dalam database secara langsung di MySql, tetapi Anda dapat menulis program kecil dalam bahasa pilihan Anda yang melakukannya.
Program Anda akan menanyakan INFORMATION_SCHEMA.COLUMNS
tabel dan lihat CHARACTER_SET_NAME
kolom:
SELECT * FROM `INFORMATION_SCHEMA.COLUMNS`
WHERE TABLE_SCHEMA = 'dbname' AND CHARACTER_SET_NAME = 'latin1'
Untuk setiap baris hasil, sangat mudah untuk mensintesis dan mengeksekusi ALTER TABLE
kueri di tempat yang mengubah set karakter dan susunan dengan tepat:
ALTER TABLE t MODIFY col TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Dalam kueri di atas t
, col
dan TEXT
akan menjadi nilai TABLE_NAME
, COLUMN_NAME
dan DATA_TYPE
kolom dari INFORMATION_SCHEMA.COLUMNS
kumpulan hasil.