DROP TABLE IF EXISTS table_test; CREATE TABLE IF NOT EXISTS table_test ( champ1 varchar(50) COLLATE latin1_general_ci NOT NULL, champ2 varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, champ3 varchar(50) CHARACTER SET latin2 NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
CREATE TABLE t1 ( col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, col2 CHAR(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ) CHARACTER SET utf8;
ALTER TABLE t1 DEFAULT CHARACTER SET utf8mb4, MODIFY col1 CHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, MODIFY col2 CHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL;Plus simplement, on peut utiliser :
ALTER TABLE t1 CONVERT TO CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci (ou utf8mb4_bin);Sans être obligé de donner les noms des colonnes ; seules les colonnes nécessitant d'être transcodées le seront automatiquement.
SET NAMES utf8mb4;au lieu de
SET NAMES utf8;avant les requêtes.