Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como converter todas as tabelas no banco de dados para um agrupamento?


Você precisa executar uma instrução alter table para cada tabela. A declaração seguiria este formato:
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]

Agora, para obter todas as tabelas do banco de dados, você precisaria executar a seguinte consulta:
SELECT * 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDataBaseName"
AND TABLE_TYPE="BASE TABLE";

Então agora deixe o MySQL escrever o código para você:
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";

Você pode copiar os resultados e executá-los. Eu não testei a sintaxe, mas você deve ser capaz de descobrir o resto. Pense nisso como um pequeno exercício.

Espero que ajude!