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';
  • bbdd/sql/collate.txt
  • Darrera modificació: 11/07/2026 20:41
  • per mate