意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

MySQL追加注释或者大量修改注释的方法

来源:恒创科技 编辑:恒创科技编辑部
2023-12-21 22:14:59
这篇文章主要讲解了“追加注释或者大量修改注释的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL追加注释或者大量修改注释的方法”吧!

MySQL 5.6.14

之前一个项目比较仓促,开发给的建表语句没有注释.
现在要补全注释信息.
但是MySQL后期追加注释比较麻烦
需要使用modify语法。

只要不小心写错一点,就可能导致表结构的变更,而不是注释的变更.

实验表如下:

createtablet(


MySQL追加注释或者大量修改注释的方法

c1intprimarykeyauto_increment,

c2char(20)notnulldefault'c2'comment'c2的注释',

c3datedefault'2016-01-25'comment'date类型测试',

c4varchar(20)notnulldefault'',

c5bigint,

c6textcomment'text测试',

c7timestampnotnulldefaultonupdatenotnulldefaultnow()

);



通过如下的SQL,解析元数据信息,可以直接显示modify的内容.
追加或者修改注释之后,执行语句即可.
这样可以避免人为的失误.

SELECT

concat(

'altertable',

table_schema,'.',table_name,

'modifycolumn',column_name,'',column_type,'',

if(is_nullable='YES','','notnull'),

if(column_defaultISNULL,'',

if(

data_typeIN('char','varchar')

OR

data_typeIN('date','datetime','timestamp')ANDcolumn_default!='CURRENT_TIMESTAMP',

concat('default''',column_default,''''),

concat('default',column_default)

)

),

if(extraisnullorextra='','',concat('',extra)),

'comment''',column_comment,''';'

)s

FROMinformation_schema.columns

WHEREtable_schema='test'

ANDtable_name='t'



以实验表为例,生成的modify语句如下.

altertabletest.tmodifycolumnc1int(11)notnullauto_incrementcomment'';

altertabletest.tmodifycolumnc2char(20)notnulldefault'c2'comment'c2的注释';

altertabletest.tmodifycolumnc3datedefault'2016-01-25'comment'date类型测试';

altertabletest.tmodifycolumnc4varchar(20)notnulldefault''comment'';

altertabletest.tmodifycolumnc5bigint(20)comment'';

altertabletest.tmodifycolumnc6textcomment'text测试';

altertabletest.tmodifycolumnc7timestampnotnulldefaultonupdate'';

altertabletest.tmodifycolumnc8datetimenotnulldefault'';

上一篇: MySQL增量备份的脚本代码 下一篇: 云数据库技术|“重磅升级”后再测TDSQL-C