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

MySQL 5.6.14

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

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

实验表如下:

createtablet(

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追加注释或者大量修改注释的方法”的内容了,经过本文的学习后,相信大家对MySQL追加注释或者大量修改注释的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!