MYSQL本身没有这种批量的命令。不过你可以自己生成 alter table t modify 的脚本,一次性把所有需要修改的列的注释更新。
先利用sql进行表格的信息查询来制作执行语句(网上轮子):
SELECT CONCAT(
'alter table ',
table_schema, '.', table_name,
' modify column ', column_name, ' ', column_type, ' ',
IF(is_nullable = 'YES', ' ', 'not null '),
IF(column_default IS NULL, '',
IF(
data_type IN ('char', 'varchar')
OR
data_type IN ('date', 'datetime', 'timestamp') AND column_default != 'CURRENT_TIMESTAMP',
CONCAT(' default ''', column_default, ''''),
CONCAT(' default ', column_default)
)
),
IF(extra IS NULL OR extra = '', '', CONCAT(' ', extra)),
' comment ''', column_comment, ''';'
) '组合语句'
FROM information_schema.columns
WHERE table_schema = 'study' -- 库名
AND table_name = 'jsl_bond_info_temp_t' -- 表名
--------------------------------------------------------------------------
alter table study.jsl_bond_info_temp_t modify column put_price decimal(15,3) comment '';
alter table study.jsl_bond_info_temp_t modify column turnover_rt decimal(15,3) comment '';
alter table study.jsl_bond_info_temp_t modify column curr_iss_amt decimal(15,3) comment '';
alter table study.jsl_bond_info_temp_t modify column rating_cd varchar(10) comment '';
alter table study.jsl_bond_info_temp_t modify column issuer_rating_cd varchar(10) comment '';
alter table study.jsl_bond_info_temp_t modify column guarantor varchar(240) comment '';
alter table study.jsl_bond_info_temp_t modify column repo_cd varchar(30) comment '';
alter table study.jsl_bond_info_temp_t modify column sincrease_rt varchar(10) comment '';
alter table study.jsl_bond_info_temp_t modify column premium_rt varchar(10) comment '';
alter table study.jsl_bond_info_temp_t modify column year_left decimal(15,3) comment '';
alter table study.jsl_bond_info_temp_t modify column ytm_rt varchar(10) comment '';
alter table study.jsl_bond_info_temp_t modify column increase_rt varchar(10) comment '';
alter table study.jsl_bond_info_temp_t modify column volume decimal(15,3) comment '';
alter table study.jsl_bond_info_temp_t modify column short_maturity_dt date comment '';
alter table study.jsl_bond_info_temp_t modify column dblow decimal(15,3) comment '';
alter table study.jsl_bond_info_temp_t modify column force_redeem_price decimal(15,3) comment '';
alter table study.jsl_bond_info_temp_t modify column put_convert_price varchar(20) comment '';
alter table study.jsl_bond_info_temp_t modify column convert_amt_ratio varchar(10) comment '';
自己再加注释。。。。