Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengubah susunan semua baris dari latin1_swedish_ci ke utf8_unicode_ci?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INET_ATON() dan INET_NTOA() di PHP?

  2. Memahami struktur catatan MyISAM

  3. Cara menggunakan kode MySql dan Entity Framework 4.1 terlebih dahulu

  4. Dapatkan String Kueri MySQL Lengkap saat Sisipkan atau Perbarui

  5. Cara tercepat untuk membuat subset - data.table vs. MySQL