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

Comment convertir toutes les tables de la base de données en un seul classement ?

Vous devez exécuter une instruction alter table pour chaque table. La déclaration suivrait cette forme :

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

Maintenant, pour obtenir toutes les tables de la base de données, vous devez exécuter la requête suivante :

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

Alors maintenant, laissez MySQL écrire le code pour vous :

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

Vous pouvez copier les résultats et les exécuter. Je n'ai pas testé la syntaxe mais vous devriez être capable de comprendre le reste. Considérez cela comme un petit exercice.

J'espère que ça aide !