接到个任务,批量将所有数据库中的datetime改为datetime(3),刚开始比较笨,一个库一个表每个字段的去遍历,好笨。去百度了一下,发现可以从information_schema表中查到所有的信息,然后拼接sql,在批量执行就行了。
select CONCAT('alter table ', TABLE_SCHEMA, '.',table_name, ' MODIFY ',column_name, ' datetime(3);') as sqq, TABLE_SCHEMA, data_type
from information_schema.columns
where TABLE_SCHEMA not in('__recycle_bin__', 'information_schema', 'mysql', 'sys') and data_type='datetime';