先查询组合出这些更改的SQL,再执行
select
CONCAT('ALTER TABLE `',TABLE_NAME,'` MODIFY COLUMN `',COLUMN_NAME,'` ',COLUMN_TYPE
,case when CHARACTER_SET_NAME is not null then CONCAT(' CHARACTER SET ',CHARACTER_SET_NAME,' COLLATE ',COLLATION_NAME) else '' end
,' NULL;') as alterSQL
from information_schema.`COLUMNS`
where TABLE_SCHEMA = '数据库名' and TABLE_NAME like 'zt_%'
and IS_NULLABLE = 'NO' and COLUMN_KEY not in ('PRI') and EXTRA not in ('auto_increment')
and COLUMN_DEFAULT is null