Step1: 执行sql,按条件查询拼接 alter sql语句

    1. SELECT
    2. CONCAT(
    3. 'ALTER TABLE `',
    4. table_name,
    5. '` MODIFY `',
    6. column_name,
    7. '` ',
    8. DATA_TYPE,
    9. '(',
    10. CHARACTER_MAXIMUM_LENGTH,
    11. ') CHARACTER SET UTF8 COLLATE utf8_general_ci',
    12. (
    13. CASE
    14. WHEN IS_NULLABLE = 'NO' THEN
    15. ' NOT NULL'
    16. ELSE
    17. ''
    18. END
    19. ),
    20. ';'
    21. )
    22. FROM
    23. information_schema. COLUMNS
    24. WHERE
    25. TABLE_SCHEMA = 'database-name'
    26. AND (DATA_TYPE = 'varchar' OR DATA_TYPE = 'char')
    27. AND (
    28. CHARACTER_SET_NAME != 'utf8'
    29. OR COLLATION_NAME != 'utf8_general_ci'
    30. );

    step2: 全选并复制上述sql的执行结果,新建查询框执行得到的执行结果,OK!