Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Modifier le classement de toutes les tables

Différents classements de base de données vous permettent de stocker différents types de caractères dans une base de données. Par défaut, MySQL a un jeu de caractères latin1 avec une collation latin1_swedish_ci. Cependant, vous pouvez facilement modifier le classement MySQL de tables spécifiques, de toutes les tables ou même d'une base de données entière. Voici comment changer le classement dans MySQL.


Comment modifier le classement de toutes les tables dans MySQL

Nous verrons les étapes pour changer le classement dans MySQL.


Voici la requête SQL pour changer le classement d'une table MySQL

ALTER TABLE tbl_name 
[[DEFAULT] CHARACTER SET charset_name] 
[COLLATE collation_name]

Dans la requête ci-dessus, vous devez spécifier le nom de la table tbl_name . Vous pouvez également éventuellement spécifier le jeu de caractères charset_name et classement collation_name .

Bonus Read :Top des blogs Database à suivre

Voici un exemple pour changer le classement de toutes les tables d'une base de données en utf8_general_ci. Remplacer database_name et table_name ci-dessous avec les noms de base de données et de champ respectivement.

alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Si vous souhaitez modifier le classement de toutes les tables de votre base de données, vous devez exécuter la requête ci-dessus pour chaque table séparément.

Comme cela peut être très fastidieux, nous créons une requête SELECT qui génère les instructions de table ALTER pour chaque table de notre base de données. Tout d'abord, voici la requête SELECT qui renvoie tous les détails liés à la table dans votre base de données.

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="database_name" 
AND TABLE_TYPE="BASE TABLE";

Lecture bonus :meilleures alternatives MySQL Workbench

Nous modifions la requête SELECT ci-dessus pour créer une instruction ALTER TABLE pour chaque table de votre base de données.

Voici la requête de sélection qui générera des requêtes SQL pour toutes les tables de votre base de données. Remplacer database_name et collation_name ci-dessous avec vos noms de base de données et de classement et exécutez-le pour générer des requêtes SQL afin de modifier le classement de toutes les tables de votre base de données.

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE collation_name;") AS ExecuteTheString FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA="database_name" AND TABLE_TYPE="BASE TABLE";

Lecture bonus :Comment activer le journal des requêtes lentes dans MySQL

Voici une autre requête SQL pour changer le classement de toutes les tables en utf8.

SELECT CONCAT('ALTER TABLE ', tbl.TABLE_SCHEMA, '.', tbl.TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM information_schema.TABLES
 tbl WHERE tbl.TABLE_SCHEMA = 'database_name'

Une fois que vous avez la liste des requêtes ALTER TABLE pour chaque table, vous pouvez les copier-coller et les exécuter pour modifier le classement de toutes les tables.

Espérons que l'article ci-dessus vous aidera à modifier le classement de toutes les tables de la base de données dans MySQL.