sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo convertir todas las tablas en la base de datos a una colación?

Debe ejecutar una declaración de modificación de tabla para cada tabla. La declaración seguiría esta forma:

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

Ahora, para obtener todas las tablas en la base de datos, debe ejecutar la siguiente consulta:

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

Así que ahora deja que MySQL escriba el código por ti:

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";

Puede copiar los resultados y ejecutarlos. No he probado la sintaxis, pero debería poder averiguar el resto. Piense en ello como un pequeño ejercicio.

¡Espero que eso ayude!