先说下场景:要把系统中所有表创建人id 长度小于50的统一刷到长度100。
// TABLE_SCHEMA --指定库名
// COLUMN_NAME --指定字段名
// CHARACTER_MAXIMUM_LENGTH --控制字段长度
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'CRTER_ID' and TABLE_SCHEMA='bidprcu_db_nanjing' and CHARACTER_MAXIMUM_LENGTH<=50 ;
// 修改库中所有的 CRTER_ID 长度。 拼接语句。
SELECT CONCAT(" alter table ", c.TABLE_NAME," modify column CRTER_ID varchar(50) DEFAULT NULL COMMENT ", "'创建人ID'" ," ; ") from (
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'CRTER_ID' and TABLE_SCHEMA='bidprcu_db_nanjing' and CHARACTER_MAXIMUM_LENGTH<=50 ) c