Mysql Veritabanındaki bütün tabloların ve kolonların karakter setinin değiştirilmesi

Mysql’de bunu bir komutla yapmak mümükün değil. Bir tablonun varsayılan karakter setini değiştirip bunu bütün kolonlarına uygulayan komut var aslında:

ALTER TABLE ‘veritabani_adi’.’tablo_adi’ CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

Eğer yüzlerce ya da daha fazla tablo varsa bu sorguyu defalarca yazmak istemezsiniz. Aşağıdaki sorguyu information_schema veritabanında çalıştırdığınızda tabloların hepsinin ve bütün sütunlarının karakter setini değiştirecek olan sorguları listeleyebilirsiniz.

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'veritabani_adi'
ORDER BY 1

Sonra üretilen sorgu satırlarını alıp phpmyAdmin’de istediğiniz veritanaı üzerinde çalıştırırsanız bütün tablolarınızın ve kolonlarınızın karakter seti değişecektir.

Yukarıdaki örnekte karakter setini utf8_general_ci olarak değiştirdik. utf8_swedish_ci karakter setine sahip tabloları Türkçe karakterleri doğru göstersin diye değiştirmek amacıyla kullandım. Siz istediğiniz karakter seti için değiştirip kullanabilirsiniz.

Yazarken, şu adresteki yazıdan yararlandım.