分类: MySQL

MySQL 5.6.14

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

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

实验表如下:

  1. create table t(
  2. c1 int primary key auto_increment,
  3. c2 char(20) not null default 'c2'  comment 'c2的注释',
  4. c3 date default '2016-01-25' comment 'date类型测试',
  5. c4 varchar(20) not null default '' ,
  6. c5 bigint ,
  7. c6 text comment 'text测试',
  8. c7 timestamp not null default current_timestamp on update current_timestamp,
  9. c8 datetime not null default now()
  10. );

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

  1. SELECT
  2. concat(
  3. 'alter table ',
  4. table_schema, '.', table_name,
  5. ' modify column ', column_name, ' ', column_type, ' ',
  6. if(is_nullable = 'YES', ' ', 'not null '),
  7. if(column_default IS NULL, '',
  8. if(
  9. data_type IN ('char', 'varchar')
  10. OR
  11. data_type IN ('date', 'datetime', 'timestamp') AND column_default != 'CURRENT_TIMESTAMP',
  12. concat(' default ''', column_default,''''),
  13. concat(' default ', column_default)
  14. )
  15. ),
  16. if(extra is null or extra='','',concat(' ',extra)),
  17. ' comment ''', column_comment, ''';'
  18. ) s
  19. FROM information_schema.columns
  20. WHERE table_schema = 'test'
  21. AND table_name = 't'

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

  1. alter table test.t modify column c1 int(11) not null  auto_increment comment '';
  2. alter table test.t modify column c2 char(20) not null  default 'c2' comment 'c2的注释';
  3. alter table test.t modify column c3 date   default '2016-01-25' comment 'date类型测试';
  4. alter table test.t modify column c4 varchar(20) not null  default '' comment '';
  5. alter table test.t modify column c5 bigint(20)   comment '';
  6. alter table test.t modify column c6 text   comment 'text测试';
  7. alter table test.t modify column c7 timestamp not null  default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP comment '';
  8. alter table test.t modify column c8 datetime not null  default CURRENT_TIMESTAMP comment '';
 
 

MySQL追加注释或者大量修改注释的更多相关文章

  1. svn 强制用户添加注释 和 允许用户修改注释

    当我们用TortoiseSVN提交代码时,有很多人不喜欢写注释,导致以后代码版本多,也不清楚哪个版本到底改了什么东西.所以在提交的时候,我会强制要求添加注释.这是如何实现的?这个话题就涉及到了svn的 ...

  2. mysql查看和修改注释

    MySQL查看注释,MySQL修改注释,mysql查看注释,mysql修改注释 1.给大家做演示,这里随便创建一张学生表,代码如下: CREATE TABLE `student` ( `id` int ...

  3. mysql中注释的添加修改

    1 创建表的时候写注释,在使用comment关键字语法:create table 表名 (字段名 类型 comment '字段的注释' )comment='表的注释'; 查看一下 2 修改表的注释al ...

  4. mysql添加表注释、字段注释、查看与修改注释

    1 创建表的时候写注释create table test1( field_name int comment '字段的注释')comment='表的注释'; 2 修改表的注释alter table te ...

  5. git 修改注释信息

    1. push 之前 先看看自己提交过多少次,然后执行 git rebase -i HEAD~数字(你要修改你的第几次提交) 接下来执行,修改注释 git commit --amend 修改完注释之后 ...

  6. Eclipse设置问题:字体大小、修改注释内容、修改快捷键

    一.设置字体大小,看下图,包括了设计代码字体大小和控制台输出字体大小 二.修改注释内容 选择window---->>preferences 选择Java---->>code s ...

  7. MySql给表添加列和注释

    1.给表添加列 ALTER TABLE supplier_seller ADD COLUMN company_id INT NULL COMMENT '供应主体id'; 默认情况下,添加的列会添加到最 ...

  8. pycharm修改注释颜色

    原来的注释是红色的,看着跟报错似的.. 还有flask中html文件的注释,我修改了Django的注释颜色,flask也就改了 也可以直接点击下面的代码,哪里难看点哪里

  9. git强制修改注释

    在一些公司项目中,常常要求git注释提交的时候加上前缀,比如JIRA号,但是有的时候我们常常会忘了 如果用source tree等一些工具,会推送到本地仓库一半,但远程又上不去. 这个时候我们就需要强 ...

随机推荐

  1. linux 安装mysql 5.7.16

    http://blog.csdn.net/huangliang0703/article/details/49935775

  2. 弹性布局学习-详解 justify-content(三)

    弹性布局学习-详解 justify-content(三)

  3. [译]servlet3.0与non-blocking服务端推送技术

    Non-blocking(NIO)Server Push and Servlet 3 在我的前一篇文章写道如何期待成熟的使用node.js.假定有一个框架,基于该框架,开发者只需要定义协议及相关的ha ...

  4. Catalyst揭秘 Day2 Catalyst源码初探

    Catalyst揭秘 Day2 Catalyst源码初探 这节课从源码角度来讲catalyst. 首先有一个观点要澄清,就是技术不是越底层就越是性能和效率更高.因为除了指令执行性能以外,更重要的是架构 ...

  5. 电网SVG简介

    目 录1.        范围        12.        规范性引用文件        13.        缩略语        14.        本标准涉及的图形交换特征      ...

  6. 拉链法解决Hash节点冲突问题

    <?php /* * hash::拉链法解决hash节点存储冲突问题 * ::2014-07-02 * ::Small_Kind */ class small_hash { private $s ...

  7. "!x++" 我之见解

    "!x++"之说,各人见解不同,但真理只有一个.我只尝试着说出一种见解,未知真相. 何如? "!x++"等价于"!(x++)". 理论分析 ...

  8. 从JAVA多线程理解到集群分布式和网络设计的浅析

    对于JAVA多线程的应用非常广泛,现在的系统没有多线程几乎什么也做不了,很多时候我们在何种场合如何应用多线程成为一种首先需要选择的问题,另外关于java多线程的知识也是非常的多,本文中先介绍和说明一些 ...

  9. poj 2728 Desert King (最小比例生成树)

    http://poj.org/problem?id=2728 Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissio ...

  10. java 凯撒大帝密码

    古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: