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

Agrupamento de alterações do MySQL de todas as tabelas


Diferentes agrupamentos de banco de dados permitem armazenar diferentes tipos de caracteres em um banco de dados. Por padrão, o MySQL tem o conjunto de caracteres latin1 com agrupamento latin1_swedish_ci. No entanto, você pode alterar facilmente o agrupamento MySQL de tabelas específicas, todas as tabelas ou até mesmo um banco de dados inteiro. Veja como alterar o agrupamento no MySQL.



Como alterar o agrupamento de todas as tabelas no MySQL


Veremos as etapas para alterar o agrupamento no MySQL.




Aqui está a consulta SQL para alterar o agrupamento de uma tabela MySQL
ALTER TABLE tbl_name 
[[DEFAULT] CHARACTER SET charset_name] 
[COLLATE collation_name]

Na consulta acima, você precisa especificar o nome da tabela tbl_name . Você também pode opcionalmente especificar o conjunto de caracteres charset_name e agrupamento collation_name .

Bônus de leitura:Principais blogs de banco de dados para seguir

Aqui está um exemplo para alterar o agrupamento de todas as tabelas de um banco de dados para utf8_general_ci. Substitua database_name e table_name abaixo com nomes de banco de dados e campos, respectivamente.
alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Se você quiser alterar o agrupamento de todas as tabelas em seu banco de dados, será necessário executar a consulta acima para cada tabela separadamente.

Como isso pode ser muito tedioso, criamos uma consulta SELECT que gera as instruções de tabela ALTER para cada tabela em nosso banco de dados. Primeiro, aqui está a consulta SELECT que retorna todos os detalhes relacionados à tabela em seu banco de dados.
SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="database_name" 
AND TABLE_TYPE="BASE TABLE";

Bônus de leitura:Principais alternativas do MySQL Workbench

Modificamos a consulta SELECT acima para criar a instrução ALTER TABLE para cada tabela em seu banco de dados.

Aqui está a consulta de seleção que irá gerar consultas SQL para todas as tabelas em seu banco de dados. Substitua database_name e collation_name abaixo com seus nomes de banco de dados e agrupamento e execute-o para gerar consultas SQL para alterar o agrupamento de todas as tabelas em seu banco de dados.
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";

Bônus de leitura:Como habilitar o log de consulta lenta no MySQL

Aqui está outra consulta SQL para alterar o agrupamento de todas as tabelas para 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'

Depois de ter a lista de consultas ALTER TABLE para cada tabela, você pode copiar e colar e executá-las para alterar o agrupamento de todas as tabelas.

Espero que o artigo acima o ajude a alterar o agrupamento de todas as tabelas no banco de dados no MySQL.