当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如

t_users 表中有字段 name 备注名为 姓名,默认值为0,如果用alter table t_users change column name name varchar(10) ;那么备注名就会消失,默认值也会消失。故通过如下语句可以生成完事的alter 语句

生成表修改备注语句

修改数据库备注名:
单条语句写法:alter table t_version comment '版本'
生成批量语句写法:select concat("alter table " ,TABLE_NAME, " comment ", "'",TABLE_COMMENT,"'",";") from information_schema.tables where information_schema.tables.TABLE_SCHEMA='dwzx' and information_schema.tables.TABLE_TYPE='BASE TABLE'

生成列修改

单条语句写法:ALTER TABLE t_content CHANGE name name [type] [character set utf8]  [COLLATE 'utf8_general_ci']  [not null] DEFAULT ['xxx' | null] [auto_increment]  COMMENT  'xxx'
以下有几种比较典型的写法(全格式写):
ALTER TABLE `t_month_detail` CHANGE `bpu_time` `bpu_time` timestamp NOT NULL  DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP  COMMENT  '发布时间';--timestamp 类型比较特别,得写全,如下写法:
ALTER TABLE `t_month_detail` CHANGE `bpu_time` `bpu_time` timestamp COMMENT  '发布时间';
默认值不为null。
ALTER TABLE `t_award_user` CHANGE `id` `id` bigint(20)    NOT NULL   auto_increment  COMMENT  ''; -- 没有加auto_increment会丢失此属性
ALTER TABLE `t_agens` CHANGE `intro` `intro` char(10) character set utf8  COLLATE 'utf8_general_ci'  null  DEFAULT null    COMMENT  '机构简介';
ALTER TABLE `t_news` CHANGE `use` `use` bit(1)    null  DEFAULT b'0'   COMMENT  '是否显示';

生成批量语句写法--完整格式写法(呕心沥血之作)
select concat("ALTER TABLE ","`",col.TABLE_NAME,"`"," CHANGE ","`",col.COLUMN_NAME,"`"," ","`",col.COLUMN_NAME,"`"," ",col.COLUMN_TYPE , " ",
if(col.CHARACTER_SET_NAME is null," ",concat(" character set ",col.CHARACTER_SET_NAME," ")),
if(col.COLLATION_NAME is null," ",concat(" COLLATE ","'",col.COLLATION_NAME,"' ")),
if(col.IS_NULLABLE='NO'," NOT NULL "," null "),
if(col.COLUMN_DEFAULT is null , if(col.EXTRA='auto_increment' or col.IS_NULLABLE='NO'," "," DEFAULT null ") ,concat(" DEFAULT ",if(col.DATA_TYPE='timestamp' or col.DATA_TYPE='bit' ,col.COLUMN_DEFAULT,concat("'",col.COLUMN_DEFAULT,"'")))),
if(col.EXTRA is null ," ",concat(" ",col.EXTRA," "  )),
" COMMENT "," ","'",col.COLUMN_COMMENT,"'",";") change_column_type
from information_schema.COLUMNS col
join information_schema.tables  tbl  on col.TABLE_SCHEMA=tbl.TABLE_SCHEMA and col.TABLE_NAME=tbl.TABLE_NAME
where col.TABLE_SCHEMA='dwzx' and tbl.TABLE_TYPE='BASE TABLE'  ;

转载于:https://www.cnblogs.com/zejin2008/p/5133858.html

mysql批量生成修改表和列注释语句相关推荐

  1. mysql批量取消多行sql_mysql批量删除指定前缀的表,批量修改表名的SQL语句

    批量删除指定前缀的表 Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where tabl ...

  2. EXCEL 批量生成sheet表+生成超链接目录+某列按多条件去重罗列+提取单元格中的字母、数字

    文章目录 前言 一.EXCEL 公式实现多个条件值匹配 二.EXCEL 工作薄下SHEET表太多时你可以这样做 1.生成多个相同表头的SHEET表 1.1.批量生成SHEET表 1.2.批量更改多个S ...

  3. 图书条码mysql数据库_中琅条码软件如何连接MySQL批量生成128码

    原标题:中琅条码软件如何连接MySQL批量生成128码 中琅条码软件除了支持常见的TXT,CSV.Excel等文件类型数据库,还支持MySQL.SQLServer.Access等常用数据库.下面就以M ...

  4. mysql修改工资字段_基于Linux的MySQL操作实例(修改表结构,MySQL索引,MySQL数据引擎)...

    基于Linux的MySQL操作实例(修改表结构,MySQL索引,MySQL数据引擎) 前言 本篇是基于Linux下针对MySQL表结构的修改,MySQL索引的操作以及MySQL数据引擎的配置和说明. ...

  5. postgresql表和列注释(描述)

    2019独角兽企业重金招聘Python工程师标准>>> PostgreSQL添加表和列注释.本文为测试表test,默认无注释. test=# \d+关联列表架构模式 | 名称 | 类 ...

  6. mysql的altertable_mysqlaltertable修改表命令详细介绍

    MySQL ALTER语法如下: ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...] alter_specification: AD ...

  7. 将Excel明细表按指定模板样式批量生成新表,也可生成工作簿

    通过E灵插件可以将明细表批量转换成指定格式的新表. 使用前需要做准备工作,工作簿中必须有一个明细表.一个模板表. 在模板表中需要做标示,标示方法是: 将明细表中的标题(关键字)复制到模板表中,且前后添 ...

  8. mysql alter table修改表命令整理

    这篇文章主要介绍了mysql alter table修改表命令整理的相关资料,需要的朋友可以参考下 MYSQL ALTER TABLE命令用于修改表结构,例如添加/修改/删除字段.索引.主键等等,本文 ...

  9. sqlite 修改表的列

    文章目录 sqlite 修改表的列 1. 问题的引入 2. ALTER命令 2.1 表重命名 2.2 新增列 3. 重建表修改列 3.1 重命名表 3.2 重新创建表 3.3 插入数据 3.4 删除旧 ...

最新文章

  1. CSS实现元素居中原理解析
  2. Kotlin如何避免“!!”(非空断言)
  3. topic是短语还是句子_英语七下unit 5 topic 3短语句子
  4. Java单向链表操作详解
  5. TabLayout让Fragment在ViewPager中的滑动切换更优雅
  6. python网络编程-一些常用有用的函数
  7. java程序 启动慢_spring boot 程序启动缓慢的问题
  8. vc6.0 debug 比 release 快??_快速入门快应用——quickapp构建与发布
  9. 计算机专业英语问卷调查,调查问卷英文版.doc
  10. js 字符串编码与解码
  11. SQLserver 事务日志已满解决方法
  12. 为什么mysql查询结果有前缀_字符串的公共前缀对Mysql B+树查询影响回溯分析
  13. zeppelin 配置 spark
  14. 皮尔逊系数皮尔逊系数---K近算法之皮尔逊系数
  15. 走近openGauss数据库
  16. jsessionId的使用
  17. 2021-03-03-Beamforming algorithms - beamformers
  18. 手机投屏到电视上怎么操作?
  19. 气温和降水空间栅格数据下载RS123
  20. MTK6577+Android之按键(key)修改

热门文章

  1. 安装SQL2005提示“SQL Server 2005 COM+ 目录要求”警告 解决方法
  2. nandflash与文件系统,oob区数据扫盲。后面还会补充实际生产烧录的心得体验,依据不同的文件系统
  3. 重学java基础第十六课:jdk jre jvm
  4. Taro+react开发(73):Taro.createSelectorQuery
  5. PS教程第七课:如何查看图层
  6. 前端学习(2887):如何短时间内实现v-for createApp解决方案
  7. 工作342:消除平时环境的console
  8. 前端学习(2048)vue之电商管理系统电商系统之实现首页内容自定制
  9. 前端学习(1687):前端系列javascript基础面试前言
  10. 前端学习(902):this指向问题