Saya perlu menjalankan pernyataan ini di semua tabel untuk semua kolom.
alter table table_name charset=utf8;
alter table table_name alter column column_name charset=utf8;
Apakah mungkin untuk mengotomatisasi ini dengan cara apa pun di dalam MySQL? Saya lebih suka menghindari mysqldump
Pembaruan: Richard Bronosky menunjukkan caranya :-)
Kueri yang perlu saya jalankan di setiap tabel:
alter table DBname.DBfield CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Gila kueri untuk menghasilkan semua kueri lain:
SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'DBname';
Saya hanya ingin menjalankannya dalam satu database. Butuh waktu terlalu lama untuk mengeksekusi semua dalam satu lulus. Ternyata itu menghasilkan satu permintaan per bidang per tabel. Dan hanya satu permintaan per tabel yang diperlukan (berbeda dengan penyelamatan). Mendapatkan output pada file adalah bagaimana saya menyadarinya.
Cara menghasilkan output ke file:
mysql -B -N --user=user --password=secret -e "SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'DBname';" > alter.sql
Dan akhirnya untuk mengeksekusi semua pertanyaan:
mysql --user=user --password=secret < alter.sql
Terima kasih Richard. Kamulah orangnya!
sumber
Sebenarnya, Anda bisa menggunakan CONVERT TO pada sebuah tabel untuk mengkonversikan semua kolom di dalam tabel itu ke charset dan collation.
Juga, lebih masuk akal bagi saya untuk memilih database aktual yang Anda inginkan. Jadi ini:
daripada ini:
Tapi saya kira jika Anda benar - benar ingin melakukannya di semua tabel, Anda bisa menggunakan yang pertama. Tampaknya agak berat bagiku. :)
sumber
Untuk mengubah susunan pada semua kolom yang saya gunakan
sumber
Anda dapat menggunakan
information_schema
database untuk menemukan kolom dan tabel yang harus Anda ubah. Anda dapat menemukannya dengan:Kemudian Anda dapat mengotomatiskan alter dengan skrip SQL, prosedur store atau dengan bahasa pengembangan pilihan Anda.
sumber