SQL Cambiar collate
- Cambiar la opción por defecto de crear nuevas tablas:
ALTER DATABASE `tu_base_de_datos` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- Ejecutar las sentencias generadas para cambiar todas las tablas una base de datos:
SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS script FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'tu_base_de_datos' AND TABLE_TYPE = 'BASE TABLE';
- Ojo con los errores de claves foráneas:
-- 1. Desactivar la verificación de llaves foráneas SET FOREIGN_KEY_CHECKS = 0; -- [AQUÍ EJECUTAS TODO TU SCRIPT DE ALTER TABLES] -- 2. Volver a activar la verificación SET FOREIGN_KEY_CHECKS = 1;
- Opción para algunas tablas solo:
SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS script FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'tu_base_de_datos' AND TABLE_NAME IN ('tabla_A', 'tabla_B', 'tabla_C') AND TABLE_TYPE = 'BASE TABLE';